evlib 0.8.7

Event Camera Data Processing Library
Documentation
[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
all = [
  "evlib[dev,duckdb,plot,jupyter,torch,pytorch]",
]

[tool.maturin]
python-source = "python"
module-name = "evlib"
# Strip the library for minimum file size
strip = true
# Optionally include extra files in sdist or wheel
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]
# Configuration for pytest-markdown-docs
docs_dir = "docs"
ignore_glob = [
    "index.md",
    "development/releases.md",
    "development/contributing.md",
    "development/testing.md",
]

[tool.ruff]
line-length = 88