[build-system] requires = ["hatchling", "hatch-vcs", "hatch-containers"] build-backend = "hatchling.build" [project] readme = "README.md" name = "PlanktoScope" description = "An open and affordable imaging platform for citizen oceanography" license = { text = "GPL-3.0-or-later" } requires-python = ">=3.7" authors = [{ name = "Romain Bazile", email = "planktoscope@gmail.com" }] keywords = [] classifiers = [ "Development Status :: 5 - Production/Stable", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Image Processing", "Topic :: Scientific/Engineering :: Image Recognition", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", ] dependencies = [ "Adafruit-Blinka~=6.15.0", "adafruit-circuitpython-motor~=3.3.1", "adafruit-circuitpython-motorkit~=1.6.3", "Adafruit-PlatformDetect~=3.17.2", "Adafruit-SSD1306~=1.6.2", "loguru~=0.5.3", "matplotlib~=3.5.0", "morphocut~=0.1.2", "numpy~=1.21.4", "opencv-contrib-python~=4.5.3.56", "paho-mqtt~=1.6.1", "picamera~=1.13", "picamerax~=21.9.8", "RPi.GPIO~=0.7.1a4", "scikit-image~=0.18.3", "scipy~=1.7.2", "smbus2~=0.4.1", ] dynamic = ["version"] [project.urls] Homepage = "https://www.planktoscope.org/" Documentation = "http://PlanktoScope.github.io/PlanktoScope" Issues = "https://github.com/PlanktoScope/PlanktoScope/issues" Source = "https://github.com/PlanktoScope/PlanktoScope" [project.scripts] planktoscope = "pkg.planktoscope:main" [tool.hatch.version] source = "vcs" [tool.hatch.build] sources = ["./software/planktoscope-backend/src"] [tool.hatch.build.hooks.vcs] version-file = "./software/planktoscope-backend/src/planktoscope_backend/__about__.py" [tool.hatch.build.targets.sdist] include = ["main.py", "./planktoscope/*.py", "./planktoscope/**/*.py"] [tool.hatch.build.targets.wheel] [tool.hatch.envs.default] [tool.hatch.envs.dev] python = "310" dependencies = [ "black", "coverage[toml]", "isort", "pydocstyle", "pycodestyle", "pylint", "pytest", "typing", "pytest-cov", "pytest-mock", "pytest-randomly", "pytest-rerunfailures", "pytest-xdist", ] [tool.hatch.envs.test] dependencies = [ "coverage[toml]", "pytest", "pytest-cov", "pytest-mock", "pyspelling", ] [tool.hatch.envs.test.scripts] cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=scripts/planktoscope --cov=tests {args}" no-cov = "cov --no-cov {args}" [[tool.hatch.envs.test.matrix]] python = ["37", "38", "39", "310", "311"] [tool.hatch.envs.lint] dependencies = ["flake8", "black", "isort"] [tool.hatch.envs.lint.scripts] check = [ "flake8 .", "black --check --diff software/planktoscope-backend", "isort --check-only --diff software/planktoscope-backend", ] fmt = [ "isort software/planktoscope-backend", "black software/planktoscope-backend", "check", ] [tool.hatch.envs.docs] dependencies = [ "mkdocs", "mkdocs-charts-plugin", "mkdocs-glightbox", "mkdocs-macros-plugin", "mkdocs-markdownextradata-plugin", "mkdocs-material-extensions", "mkdocs-material", "mkdocs-minify-plugin", "mkdocs-redirects", "mkdocs-table-reader-plugin", "pygments", "pymdown-extensions", "linkchecker", ] [tool.hatch.envs.docs.scripts] build = "mkdocs build --clean --strict" serve = "mkdocs serve --dev-addr localhost:8000" validate = ["linkchecker --config .linkcheckerrc site"] check = ["build --no-directory-urls", "validate"]