openflexure-microscope-server/pyproject.toml
Richard Bowman 20001e4946 Force installation only from piwheels
Forcing the use of piwheels avoids trying
to install numpy/scipy from source,
which is the Right Answer.

Unfortunately, sometimes packages fail on piwheels, but poetry still
tries to install them.  I've had to fix
pyyaml at 5.4.0 for that reason.
2021-02-18 13:29:02 +00:00

105 lines
No EOL
2.7 KiB
TOML

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
[tool.poetry]
name = "openflexure-microscope-server"
version = "2.9.3"
description = "Python module, and Flask-based web API, to run the OpenFlexure Microscope."
authors = [
"Joel Collins <j.collins@bath.ac.uk>",
"Richard Bowman <r.w.bowman@bath.ac.uk",
"Julian Stirling <j.stirling@bath.ac.uk>"
]
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" },
]
# Installing numpy/scipy/etc. from source is unlikely to work.
# The block below forces Poetry to use piwheels.
# We can add other repositories if we need them.
# Setting default=true disables fallback to PyPI.
[[tool.poetry.source]]
name = "piwheels"
url = "https://www.piwheels.org/simple"
default = true
[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.6.1" # 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.5.1.48"
sangaboard = "^0.2"
expiringdict = "^1.2.1"
camera-stage-mapping = "0.1.4"
picamerax = ">=20.9.1"
pyyaml = "5.4.0" # pyyaml 5.4.1 is broken in piwheels
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]
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"
lxml = "^4.6.2" # Fix version so piwheels works
[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 --cobertura-xml-report openflexure_microscope openflexure_microscope"
test = "pytest ."
format = ["black", "isort"]
lint = ["pylint", "mypy"]
check = ["format", "lint", "test"]