openflexure-microscope-server/pyproject.toml
2024-01-04 13:19:00 +00:00

98 lines
No EOL
3 KiB
TOML

[project]
name = "openflexure-microscope-server"
version = "3.0.0.dev0"
authors = [
{ name="Richard Bowman", email="richard.bowman@cantab.net" },
{ name="Joel Collins" },
{ name="Julian Stirling" },
]
description = "Back-end code for the OpenFlexure Microscope"
readme = "README.md"
requires-python = ">=3.9"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent",
]
dependencies = [
"labthings-fastapi",
"labthings-sangaboard",
"labthings-picamera2",
"camera-stage-mapping ~= 0.1.6",
"numpy ~= 1.20",
"scipy ~= 1.6",
"opencv-python ~= 4.7.0",
"anyio ~= 4.0",
]
[project.optional-dependencies]
dev = [
"labthings-fastapi[dev]",
]
[project.urls]
"Homepage" = "https://openflexure.org/"
"Bug Tracker" = "https://gitlab.com/openflexure/openflexure-microscope-server/-/issues"
"Source" = "https://gitlab.com/openflexure/openflexure-microscope-server/"
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
# The [tool.poetry] metadata has been removed from this file, because
# we have switched to Pipenv for dependency management and setuptools
# for the build system. All metadata has been moved either to
# Pipfile or setup.py.
# The one key that doesn't map over nicely is the exclusion of
# the node_modules folder, i.e. the line below:
#exclude = ["**/node_modules/"] # I've tried to put this in the "packages" key but not sure it works.
# I have left it here in case we ever switch back to Poetry, but I
# don't believe it's critical at present, because we don't use
# the Python package - we distribute a tarball directly.
[tool.black]
exclude = '(\.eggs|\.git|\.venv|\venv|node_modules/)'
[tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 88
[tool.pylint.'MESSAGES CONTROL']
# W1203 warns about using f strings in logging statements.
# I'm really not concerned about the performance implications of this,
# particularly as we often have the log level set quite high. I think
# for our current purposes, using f strings in logging statements is
# more readable and thus a good idea in many places - I've disabled
# this warning code globally for that reason.
disable = "fixme,C,R,W1203"
max-line-length = 88
[tool.mypy]
plugins = ["pydantic.mypy"]
[tool.ruff]
target-version = "py39"
[tool.poe.executor]
type = "virtualenv"
location = ".venv"
[tool.poe.tasks]
black = "black ."
black_check = "black --check ."
ruff = "ruff . --fix"
ruff_check = "ruff ."
isort = "isort openflexure_microscope"
pylint = "pylint openflexure_microscope"
mypy = "mypy --cobertura-xml-report openflexure_microscope openflexure_microscope"
test = "pytest . --junitxml=pytest_report.xml"
serve = "python -m openflexure_microscope.api.app"
format = ["black", "isort", "ruff"]
lint = ["ruff_check", "pylint", "mypy"]
check = ["format", "lint", "test"]