[build-system] requires = ["poetry>=0.12"] build-backend = "poetry.masonry.api" [tool.poetry] name = "openflexure-microscope-server" version = "2.9.0" description = "Python module, and Flask-based web API, to run the OpenFlexure Microscope." authors = [ "Joel Collins ", "Richard Bowman " ] readme = 'README.md' repository = "https://gitlab.com/openflexure/openflexure-microscope-server" homepage = "https://www.openflexure.org" keywords = ['raspberry pi', 'arduino', 'microscope'] license = "GPL-3.0" exclude = ["**/node_modules/"] packages = [ { include = "openflexure_microscope" }, ] [tool.poetry.dependencies] python = "^3.7.3" Flask = "^1.0" numpy = "1.19.2" # Exact version so we can guarantee a wheel Pillow = "^7.2.0" scipy = "1.5.3" # Exact version so we can guarantee a wheel "RPi.GPIO" = { version = "^0.7.0", optional = true } python-dateutil = "^2.8" psutil = "^5.6.7" # Autostorage extension opencv-python-headless = "4.4.0.44" sangaboard = "^0.2" expiringdict = "^1.2.1" camera-stage-mapping = "0.1.4" picamerax = ">=20.9.1" pyyaml = "^5.3.1" pytest-cov = "^2.10.1" piexif = "^1.1.3" labthings = "1.2.2" typing-extensions = "^3.7.4" # Needed for some type-hints in Python < 3.8 (e.g. Literal) numpy-stubs = {git = "https://github.com/numpy/numpy-stubs.git"} # Needed for Numpy < 1.20 [tool.poetry.extras] rpi = ["RPi.GPIO"] [tool.poetry.scripts] rescue = 'openflexure_microscope.rescue.auto:main' [tool.poetry.dev-dependencies] pynpm = "^0.1.2" sphinxcontrib-httpdomain = "^1.7" rope = "^0.14.0" pylint = "^2.3" black = {version = "^18.3-alpha.0",allow-prereleases = true} pytest = "^6.1.2" mypy = "^0.790" poethepoet = "^0.9.0" freezegun = "^1.0.0" [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'] disable = "fixme,C,R" max-line-length = 88 [tool.poe.tasks] black = "black ." black_check = "black --check ." isort = "isort ." pylint = "pylint openflexure_microscope" mypy = "mypy openflexure_microscope" test = "pytest ." format = ["black", "isort"] lint = ["pylint", "mypy"] check = ["format", "lint", "test"]