[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 :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
]
[project.optional-dependencies]
dev = ["maturin>=1.4,<2.0", "pytest>=7", "pyzmq>=25"]
[tool.maturin]
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]
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",
"requires_web: needs a wingfoil web server (runs in-process)",
"requires_kafka: needs a Kafka-compatible broker on localhost:9092",
"requires_redis: needs Redis on localhost:6379",
"requires_aeron: needs an Aeron media driver (and wingfoil built with --features aeron)",
"requires_postgres: needs PostgreSQL on localhost:5432",
]
addopts = "-m 'not requires_etcd and not requires_kdb and not requires_otel and not requires_iceoryx2 and not requires_web and not requires_kafka and not requires_redis and not requires_aeron and not requires_postgres'"