[build-system] build-backend = "setuptools.build_meta" requires = [ "setuptools", "setuptools-scm", ] [project] authors = [ {email = "a.lowe@ucl.ac.uk", name = "Alan R. Lowe"}, ] classifiers = [ "Framework :: napari", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: C++", "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 :: Python :: 3.13", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Scientific/Engineering :: Visualization", ] dependencies = [ "cvxopt>=1.3.1", "h5py>=2.10.0", "numpy>=1.17.3", "pandas>=2.0.3", "pooch>=1.0.0", "pydantic>=2.0.0", "scikit-image>=0.16.2", "scipy>=1.3.1", "tqdm>=4.65.0", ] description = "A framework for Bayesian multi-object tracking" dynamic = [ "version", ] name = "btrack" optional-dependencies = {"dev" = [ "black", "pre-commit", "ruff", ], docs = [ "numpydoc", "pytz", "sphinx", "sphinx-automodapi", "sphinx-panels", "sphinx_rtd_theme", ], napari = [ "magicgui>=0.5.0", "napari-plugin-engine>=0.1.4", "napari>=0.4.16", "qtpy", ]} readme = "README.md" requires-python = ">=3.9" entry-points."napari.manifest".btrack = "btrack:napari.yaml" license.file = "LICENSE.md" urls.bugtracker = "https://github.com/quantumjot/btrack/issues" urls.documentation = "https://btrack.readthedocs.io" urls.homepage = "https://github.com/quantumjot/btrack" urls.usersupport = "https://github.com/quantumjot/btrack/discussions" [tool.coverage] report = {skip_covered = true, sort = "cover"} run = {branch = true, parallel = true, source = [ "btrack", ]} paths.source = [ "btrack", ".tox*/*/lib/python*/site-packages", ] [tool.pytest.ini_options] addopts = "--color=yes -ra -v" testpaths = [ "tests", ] [tool.ruff] fix = true force-exclude = true ignore = [ "B905", # python>=3.10 "EM101", "EM102", "N802", "N803", "N806", "S101", "UP006", "UP007", "UP015", ] per-file-ignores = {"__init__.py" = [ "F401", # unused-import ], "test_*.py" = [ "S101", # use of 'assert' ]} select = [ "A", "B", "C", "DTZ", "E", "EM", "F", "FBT", "I", "ICN", "ISC", "N", "PLC", "PLE", "PLR", "PLW", "Q", "RUF", "S", "SIM", "T", "TID", "UP", "W", "YTT", ] target-version = "py39" isort.known-first-party = [ "black", ] isort.section-order = [ "future", "standard-library", "third-party", "napari", "first-party", "local-folder", ] isort.sections.napari = [ "magicgui", "napari", ] mccabe.max-complexity = 18 pep8-naming.classmethod-decorators = [ "classmethod", "pydantic.root_validator", "pydantic.validator", ] [tool.setuptools] packages.find = {} [tool.setuptools_scm] local_scheme = "no-local-version" write_to = "btrack/_version.py" [tool.tomlsort] all = true spaces_indent_inline_array = 4 trailing_comma_inline_array = true overrides."project.classifiers".inline_arrays = false overrides."tool.black.target-version".inline_arrays = false overrides."tool.coverage.paths.source".inline_arrays = false overrides."tool.ruff.isort.section-order".inline_arrays = false [tool.tox] legacy_tox_ini = """ [testenv] commands = pytest --cov --cov-report=xml extras = dev deps = napari pyqt5 pytest-cov pytest-qt pytest-xvfb ; sys_platform == 'linux' passenv = CI DISPLAY GITHUB_ACTIONS NUMPY_EXPERIMENTAL_ARRAY_FUNCTION PYVISTA_OFF_SCREEN XAUTHORITY [tox] envlist = py{310,311,312,313} """