cara/setup.py
Phil Elson c8f39dc26b Track down the issue with the expert app and typing.
The visitor pattern in the StateBuilder means that it is easy to miss type changes in the dataclass definition.
2021-01-06 16:21:33 +01:00

77 lines
1.9 KiB
Python

"""
setup.py for CARA.
For reference see
https://packaging.python.org/guides/distributing-packages-using-setuptools/
"""
from pathlib import Path
from setuptools import setup, find_packages
HERE = Path(__file__).parent.absolute()
with (HERE / 'README.md').open('rt') as fh:
LONG_DESCRIPTION = fh.read().strip()
REQUIREMENTS: dict = {
'core': [
'dataclasses; python_version < "3.7"',
'ipykernel',
'ipympl',
'ipywidgets',
'Jinja2',
'matplotlib',
'mistune',
'numpy',
'tornado',
'voila >=0.2.4',
],
'app': [],
'test': [
'pytest',
'pytest-mypy',
'pytest-tornasync',
'numpy-stubs @ git+https://github.com/numpy/numpy-stubs.git',
],
'dev': [
'jupyterlab',
],
}
setup(
name='CARA',
version="0.0.1.dev0",
maintainer='Andre Henriques',
maintainer_email='andre.henriques@cern.ch',
description='COVID Airborne Risk Assessment',
long_description=LONG_DESCRIPTION,
long_description_content_type='text/markdown',
url='cern.ch/cara',
packages=find_packages(),
python_requires='~=3.6',
classifiers=[
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
],
install_requires=REQUIREMENTS['core'],
extras_require={
**REQUIREMENTS,
# The 'dev' extra is the union of 'test' and 'doc', with an option
# to have explicit development dependencies listed.
'dev': [req
for extra in ['dev', 'test', 'doc']
for req in REQUIREMENTS.get(extra, [])],
# The 'all' extra is the union of all requirements.
'all': [req for reqs in REQUIREMENTS.values() for req in reqs],
},
package_data={'cara': [
'apps/calculator/*',
'apps/calculator/*/*',
'apps/calculator/*/*/*'
]},
)