planktoscope/pyproject.toml

153 lines
3.8 KiB
TOML

[build-system]
requires = [
"hatchling",
"hatch-containers",
# "hatch-requirements-txt",
"hatch-vcs",
]
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" }, { name = "Sebastian Wendel" }]
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 = [
"paho-mqtt>=1.6.1",
"loguru>=0.5.3",
"matplotlib>=3.5.0",
"morphocut>=0.1.2",
"numpy>=1.21.4",
"opencv-contrib-python>=4.5.3.56",
"scikit-image>=0.18.3",
"scipy>=1.7.2",
"smbus2>=0.4.1",
"Adafruit-Blinka>=6.15.0",
"adafruit-circuitpython-motor>=3.3.1",
"adafruit-circuitpython-motorkit>=1.6.3",
"Adafruit-PlatformDetect>=3.17.2",
"picamerax~=21.9.8",
"Adafruit-SSD1306~=1.6.2",
# "RPi.GPIO>=0.7.1a4",
# "picamera~=1.13",
]
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_backend: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=software/planktoscope-backend --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"]
# [tool.hatch.metadata.hooks.requirements_txt]
# files = ["software/planktoscope-backend/requirements.txt"]