[build-system]
requires = ["maturin>=1.7.4"]
build-backend = "maturin"
[project]
name = "evlib"
description = "Python bindings for event camera utilities"
readme = "README.md"
authors = [
{ name = "Tarek Allam", email = "t.allam.jr@gmail.com" },
]
license = { file = "LICENSE.md" }
requires-python = ">=3.10"
classifiers = [
"Environment :: Console",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Image Processing",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Typing :: Typed",
]
dependencies = [
"numpy >= 1.24.0",
"h5py >= 3.8.0 ; sys_platform != 'win32'",
"hdf5plugin >= 5.1.0 ; sys_platform != 'win32'",
"polars >= 1.30.0",
"pyarrow >= 21.0.0",
"pandera[polars] >= 0.18.0",
]
dynamic = ["version"]
[project.optional-dependencies]
dev = [
"codecov",
"maturin",
"mike >= 2.0.0",
"mkdocs-material >= 9.5.0",
"mkdocs-jupyter >= 0.24.0",
"mkdocs-material[imaging] >= 9.5.0",
"mypy >= 1.0.0",
"pygments >= 2.18.0",
"nbmake",
"pytest >= 7.0.0",
"pytest-benchmark",
"pytest-cov",
"pytest-markdown-docs >= 0.9.0",
"pytest-xdist",
"tqdm >= 4.67.1",
"twine",
]
duckdb = ["duckdb >= 1.3.2"]
jupyter = ["jupyter >= 1.0.0"]
plot = ["matplotlib >= 3.7.0", "opencv-python>=4.8.0", "seaborn>=0.13.2",]
torch = ["torch >= 2.0.0"]
pytorch = ["torch >= 2.0.0"]
all = [
"evlib[dev,duckdb,plot,jupyter,torch,pytorch]",
]
[tool.maturin]
python-source = "python"
module-name = "evlib"
strip = true
include = [{ path = "rust-toolchain.toml", format = "sdist" }, { path = "dist", format = ["sdist", "wheel"]} ]
[tool.pytest.ini_options]
testpaths = ["tests", "docs", "examples"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"benchmark: marks tests as benchmarks",
"docs: marks tests as documentation tests",
]
addopts = [
"--markdown-docs",
]
log_cli = "true"
log_cli_level = "INFO"
log_cli_format = "%(message)s"
python_files = ["test_*.py", "examples/*.py"]
norecursedirs = ["examples/figures", ".ipynb_checkpoints"]
[tool.pytest-markdown-docs]
docs_dir = "docs"
ignore_glob = [
"index.md",
"development/releases.md",
"development/contributing.md",
"development/testing.md",
]
[tool.ruff]
line-length = 88