wingfoil-python 4.0.1

python bindings for wingfoil - graph based stream processing framework
Documentation
[build-system]
requires = ["maturin>=1.4,<2.0"]
build-backend = "maturin"

[project]
name = "wingfoil"
dynamic = ["version"]
description = "Python bindings for the wingfoil Rust library"
authors = [{ name = "Jake Mitchell" }]
license = "MIT"
readme = "README.md"
requires-python = ">=3.8"

dependencies = [
    "pandas>=1.0.0"
]

classifiers = [
    "Programming Language :: Python",
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
]

[project.urls]
homepage = "https://github.com/wingfoil-io/wingfoil/"

[project.optional-dependencies]
dev = ["maturin>=1.4,<2.0", "pytest>=7", "pyzmq>=25"]

[tool.maturin]
# Keep `iceoryx2-beta` opt-in for Python builds. Enabling it by default can
# make wheels Linux/POSIX-only due to iceoryx2 dependencies.
features = ["pyo3/extension-module"]
python-source = "python"
module-name = "wingfoil._wingfoil"
include = ["Cargo.toml"]

[tool.coverage.run]
source = ["wingfoil"]

[tool.coverage.report]
omit = ["*/_wingfoil*"]

[tool.pytest.ini_options]
# Integration tests are deselected by default so the regular `pytest` run is
# never silently green against a service that is not actually up. Each
# integration workflow opts in explicitly, e.g. `pytest -m requires_etcd`.
# Running a marker selection without the backing service will fail loudly
# with a real ConnectionRefused/import error — not a skip.
markers = [
    "requires_etcd: needs etcd on localhost:2379",
    "requires_kdb: needs KDB+ on localhost:5000",
    "requires_otel: needs an OTel collector on localhost:4318",
    "requires_iceoryx2: needs wingfoil built with --features iceoryx2-beta",
]
addopts = "-m 'not requires_etcd and not requires_kdb and not requires_otel and not requires_iceoryx2'"