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.
105 lines
No EOL
2.7 KiB
TOML
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"] |