openflexure-microscope-server/setup.py
Richard Bowman e2990b5b38 Bump pylint version and fix to 2.8 to avoid bug
pylint 2.9 crashes - I can't figure out why, but it seems like it's
a bug in pylint rather than an error in our code.
We should try to track it down and get it fixed, I've seen
some similar bug reports on their github, but
all of them should be resolved in 2.9...
2021-07-21 10:49:56 +01:00

101 lines
4.3 KiB
Python

"""A setuptools based setup module for the OpenFlexure Microscope server
This file was prepared according to:
https://packaging.python.org/guides/distributing-packages-using-setuptools/
"""
from os import path
# the following imports, from the guide above, prefer `setuptools` to `distutils`
from setuptools import find_packages, setup
here = path.abspath(path.dirname(__file__))
# Get the long description from the README file
with open(path.join(here, "README.md"), encoding="utf-8") as f:
long_description = f.read()
# Not all arguments to `setup()` are required for upload to PyPI.
# See the tutorial linked to at the top for which ones are needed.
setup(
name="openflexure-microscope-server",
version="2.10.0b1",
description="Python module, and Flask-based web API, to run the OpenFlexure Microscope.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://www.openflexure.org", # "home-page" metadata field
author="Joel Collins, Richard Bowman, Julian Stirling",
author_email="contact@openflexure.org",
# For a list of valid classifiers, see https://pypi.org/classifiers/
# NB declaring Python versions here doesn't affect dependency resolution - it's for info only.
classifiers=["License :: OSI Approved :: GNU General Public License v3 (GPLv3)"],
keywords="raspberry pi arduino microscope", # Optional
packages=find_packages(exclude=["contrib", "docs", "tests", "*node_modules*"]),
python_requires="== 3.7.*",
# This field lists other packages that your project depends on to run.
# Any package you put here will be installed by pip when your project is
# installed, so they must be valid existing projects.
#
# These dependencies specify relatively flexible versions; Pipenv then resolves these
# to specific versions, and locks those versions in ``Pipfile``. Usually, when you
# set up the project for development, you use those specific packages, rather than
# the looser specifications given here.
install_requires=[
"apispec[validation]", # We need the extra to validate the spec
"Flask ~= 1.0",
"Pillow ~= 7.2.0",
"numpy ~= 1.20",
"scipy ~= 1.6.1",
"python-dateutil ~= 2.8",
"psutil ~= 5.6.7", # Autostorage extension
"opencv-python-headless ~= 4.5.1",
"sangaboard ~= 0.2",
"expiringdict ~= 1.2.1",
"camera-stage-mapping == 0.1.4",
"picamerax ~= 20.9.1",
"pyyaml ~= 5.4.0",
"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)
"RPi.GPIO ~= 0.7.0; platform_machine == 'armv7l'",
],
# "dev" specifies extra packages used for development (linting, testing, etc.)
# As with install_requires, these are relatively loose versions - Pipfile will then lock
# them to specific versions to enable consistent builds and testing.
extras_require={
"dev": [
"sphinx < 4.0", # Currently httpdomain isn't ready for 4.0
"sphinxcontrib-openapi ~= 0.7",
"sphinx_rtd_theme ~=0.5.2",
"rope ~= 0.14.0",
"pylint ~= 2.8.0", # 2.9.2 crashes and I've not yet figured out why.
"pytest ~= 6.1.2",
"mypy ~= 0.790",
"types-python-dateutil",
"types-setuptools",
"poethepoet ~= 0.10.0",
"freezegun ~= 1.0.0",
"lxml ~= 4.6",
"black == 18.9b0", # Because black is in prerelease, giving a flexible version
# specifier causes all manner of problems. A fixed version
# avoids issues with prereleases (which are normally not
# allowed by pipenv) but can be a bit of a pain sometimes!
]
},
dependency_links=[],
# We create some "entry points" to make it easier to run important modules
entry_points={
"console_scripts": [
"ofm-serve=openflexure_microscope.api.app:ofm_serve",
"ofm-rescue=openflexure_microscope.rescue.auto:main",
"ofm-generate-openapi=openflexure_microscope.api.app:generate_openapi",
]
},
project_urls={
"Source": "https://gitlab.com/openflexure/openflexure-microscope-server"
},
)