import os import sys import logging import subprocess from setuptools import find_packages, setup version = '0.0.32' needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv) pytest_runner = ['pytest-runner'] if needs_pytest else [] readme = open("README.md").read() history = open("docs" + os.sep + "BACKLOG.md").read() keywords_list = [ "virus", "pandemic", "covid19", "corona", "who", "rki", "ecdc", "deaths", "cases", "vaccination", "data", "statistic", "python", "flask", "celery", "sqlalchemy", "postgresql" ] requires_build = [ "alembic==1.5.5", "appdirs==1.4.4", "argparse==1.4.0", "attrs==20.3.0", "bleach==3.3.0", "build==0.3.1.post1", "certifi==2020.12.5", "cffi==1.14.5", "cfgv==3.2.0", "chardet==3.0.4", "click==7.1.2", "colorama==0.4.4", "cryptography==3.4.7", "distlib==0.3.1", "docutils==0.17", "filelock==3.0.12", "greenlet==1.0.0", "identify==2.2.2", "idna==2.10", "importlib-metadata==3.10.0", "jeepney==0.6.0", "keyring==23.0.1", "mako==1.1.4", "markupsafe==1.1.1", "nodeenv==1.5.0", "packaging==20.9", "pbr==3.1.1", "pep517==0.10.0", "pip-licenses==3.3.0", "pip-tools==5.5.0", "pipenv==2020.11.15", "pkginfo==1.7.0", "pre-commit==2.10.1", "ptable==0.9.2", "py==1.10.0", "pyaml==20.4.0", "pycparser==2.20", "pygments==2.8.1", "pyparsing==2.4.7", "python-dateutil==2.8.1", "python-dotenv==0.15.0", "python-editor==1.0.4", "python-magic==0.4.22", "pytoolbox==14.0.0", "pytz==2020.5", "pyyaml==5.4.1", "readme-renderer==29.0", "requests-toolbelt==0.9.1", "requests==2.25.1", "rfc3986==1.4.0", "secretstorage==3.3.1", "six==1.15.0", "sqlalchemy==1.4.6", "toml==0.10.2", "tqdm==4.59.0", "twine==3.4.1", "urllib3==1.26.4", "venv-run==0.1.0", "virtualenv-clone==0.5.4", "virtualenv==20.4.3", "webencodings==0.5.1", "wheel==0.36.2", "zipp==3.4.1", ] requires_test = [ "alembic==1.5.5", "appdirs==1.4.4", "argparse==1.4.0", "attrs==20.3.0", "bleach==3.3.0", "build==0.3.1.post1", "certifi==2020.12.5", "cffi==1.14.5", "cfgv==3.2.0", "chardet==3.0.4", "click==7.1.2", "colorama==0.4.4", "cryptography==3.4.7", "distlib==0.3.1", "docutils==0.17", "filelock==3.0.12", "flask-db==0.3.1", "flask-fixtures==0.3.8", "flask-sqlalchemy==2.4.4", "flask==1.1.2", "identify==2.2.2", "idna==2.10", "importlib-metadata==3.10.0", "iniconfig==1.1.1", "itsdangerous==1.1.0", "jaraco.context==4.0.0", "jaraco.functools==3.2.1", "jeepney==0.6.0", "jinja2==2.11.3", "keyring==23.0.1", "mako==1.1.4", "markupsafe==1.1.1", "mirakuru==2.3.0", "more-itertools==8.7.0", "nodeenv==1.5.0", "packaging==20.9", "pbr==3.1.1", "pep517==0.10.0", "pip-licenses==3.3.0", "pip-tools==5.5.0", "pipenv==2020.11.15", "pkginfo==1.7.0", "pluggy==0.13.1", "port-for==0.4", "pre-commit==2.10.1", "psutil==5.8.0", "ptable==0.9.2", "py==1.10.0", "pyaml==20.4.0", "pycparser==2.20", "pygments==2.8.1", "pyparsing==2.4.7", "pytest-enabler==1.2.0", "pytest-flask-sqlalchemy==1.0.2", "pytest-flask==1.2.0", "pytest-mock==3.5.1", "pytest-postgresql==2.6.1", "pytest-runner==5.3.0", "pytest-venv==0.2.1", "pytest==6.2.3", "python-dateutil==2.8.1", "python-dotenv==0.17.0", "python-editor==1.0.4", "python-magic==0.4.22", "pytoolbox==14.0.0", "pytz==2020.5", "pyyaml==5.4.1", "readme-renderer==29.0", "requests-toolbelt==0.9.1", "requests==2.25.1", "rfc3986==1.4.0", "secretstorage==3.3.1", "six==1.15.0", "sqlalchemy-utils==0.36.8", "sqlalchemy==1.3.23", "toml==0.10.2", "tqdm==4.60.0", "twine==3.4.1", "urllib3==1.26.4", "venv-run==0.1.0", "virtualenv-clone==0.5.4", "virtualenv==20.4.3", "webencodings==0.5.1", "werkzeug==1.0.1", "wheel==0.36.2", "zipp==3.4.1", ] requires_docs = [ "alabaster==0.7.12", "alembic==1.5.5", "appdirs==1.4.4", "argparse==1.4.0", "attrs==20.3.0", "babel==2.9.0", "bleach==3.3.0", "build==0.3.1.post1", "certifi==2020.12.5", "cffi==1.14.5", "cfgv==3.2.0", "chardet==3.0.4", "click==7.1.2", "colorama==0.4.4", "cryptography==3.4.7", "distlib==0.3.1", "docutils==0.17", "filelock==3.0.12", "github3.py==2.0.0", "greenlet==1.0.0", "httplib2==0.19.0", "identify==2.2.2", "idna==2.10", "imagesize==1.2.0", "importlib-metadata==3.10.0", "jeepney==0.6.0", "jinja2==2.11.3", "jwcrypto==0.8", "keyring==23.0.1", "mako==1.1.4", "markdown==3.3.3", "markupsafe==1.1.1", "nodeenv==1.5.0", "packaging==20.9", "pbr==3.1.1", "pep517==0.10.0", "pip-licenses==3.3.0", "pip-tools==5.5.0", "pipenv==2020.11.15", "pkginfo==1.7.0", "plantuml-gentools==0.1.2", "plantuml-markdown==3.4.2", "plantuml-wrapper==0.1.0", "plantuml==0.3.0", "pre-commit==2.10.1", "ptable==0.9.2", "py2puml==0.4.0", "py==1.10.0", "pyaml==20.4.0", "pycparser==2.20", "pygments==2.8.1", "pyparsing==2.4.7", "python-dateutil==2.8.1", "python-dotenv==0.17.0", "python-editor==1.0.4", "python-magic==0.4.22", "pytoolbox==14.0.0", "pytz==2020.5", "pyyaml==5.4.1", "readme-renderer==29.0", "requests-toolbelt==0.9.1", "requests==2.25.1", "rfc3986==1.4.0", "secretstorage==3.3.1", "six==1.15.0", "snowballstemmer==2.1.0", "speaklater==1.3", "sphinx==3.4.3", "sphinxcontrib-applehelp==1.0.2", "sphinxcontrib-devhelp==1.0.2", "sphinxcontrib-github==0.1.3", "sphinxcontrib-gravizo==0.0.4", "sphinxcontrib-htmlhelp==1.0.3", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-log-cabinet==1.0.1", "sphinxcontrib-plantuml==0.20.1", "sphinxcontrib-qthelp==1.0.3", "sphinxcontrib-serializinghtml==1.1.4", "sqlalchemy==1.4.6", "tokenize-rt==4.1.0", "toml==0.10.2", "tqdm==4.60.0", "twine==3.4.1", "uritemplate==3.0.1", "urllib3==1.26.4", "venv-run==0.1.0", "virtualenv-clone==0.5.4", "virtualenv==20.4.3", "webencodings==0.5.1", "wheel==0.36.2", "zipp==3.4.1", ] dotenv_require = [ "python-dotenv==0.17.0", "tqdm==4.60.0" ] requires_extras = { "docs": requires_docs, "tests": requires_test, "dotenv": dotenv_require, "all": [] } requires_dev = [ "alabaster==0.7.12", "alembic==1.5.5", "amqp==5.0.5", "appdirs==1.4.4", "argparse==1.4.0", "attrs==20.3.0", "babel==2.9.0", "billiard==3.6.3.0", "bleach==3.3.0", "build==0.3.1.post1", "celery[redis]==5.0.5", "certifi==2020.12.5", "cffi==1.14.5", "cfgv==3.2.0", "chardet==3.0.4", "click-didyoumean==0.0.3", "click-plugins==1.1.1", "click-repl==0.1.6", "click==7.1.2", "colorama==0.4.4", "cryptography==3.4.7", "cycler==0.10.0", "distlib==0.3.1", "dnspython==2.1.0", "docutils==0.17", "dominate==2.6.0", "email-validator==1.1.2", "filelock==3.0.12", "flask-admin==1.5.7", "flask-bs4==4.5.3.0", "flask-cors==3.0.10", "flask-db==0.3.1", "flask-fixtures==0.3.8", "flask-login==0.5.0", "flask-sqlalchemy==2.5.1", "flask-wtf==0.14.3", "flask==1.1.2", "github3.py==2.0.0", "greenlet==1.0.0", "httplib2==0.19.0", "identify==2.2.2", "idna==2.10", "imagesize==1.2.0", "importlib-metadata==3.10.0", "iniconfig==1.1.1", "itsdangerous==1.1.0", "jaraco.context==4.0.0", "jaraco.functools==3.2.1", "jeepney==0.6.0", "jinja2==2.11.3", "joblib==1.0.1", "jsonpatch==1.28", "jsonpointer==2.0", "jwcrypto==0.8", "keyring==23.0.1", "kiwisolver==1.3.1", "kombu==5.0.2", "llvmlite==0.35.0", "mako==1.1.4", "markdown==3.3.3", "markupsafe==1.1.1", "matplotlib==3.3.4", "mirakuru==2.3.0", "more-itertools==8.0.2", "PyMySQL==1.0.2", "nodeenv==1.5.0", "numba==0.52.0", "numpy==1.20.2", "packaging==20.9", "pandas==1.2.3", "pbr==3.1.1", "pep517==0.10.0", "pillow==8.2.0", "pip-licenses==3.3.0", "pip-tools==5.5.0", "pipenv==2020.11.15", "pkginfo==1.7.0", "plantuml-gentools==0.1.2", "plantuml-markdown==3.4.2", "plantuml-wrapper==0.1.0", "plantuml==0.3.0", "pluggy==0.13.1", "port-for==0.4", "pre-commit==2.10.1", "prettytable==2.0.0", "prompt-toolkit==3.0.16", "protobuf==3.15.8", "psutil==5.8.0", "psycopg2-binary==2.8.6", "ptable==0.9.2", "py2puml==0.4.0", "py==1.10.0", "pyaml==20.4.0", "pycparser==2.20", "pyecharts-extras==0.0.5", "pyecharts==1.9.0", "pygments==2.8.1", "pynndescent==0.5.2", "pyparsing==2.4.7", "pytest-enabler==1.2.0", "pytest-flask-sqlalchemy==1.0.2", "pytest-flask==1.2.0", "pytest-mock==3.5.1", "pytest-postgresql==2.6.1", "pytest-runner==5.3.0", "pytest-venv==0.2.1", "pytest==6.2.3", "python-dateutil==2.8.1", "python-dotenv==0.15.0", "python-editor==1.0.4", "python-magic==0.4.22", "pytoolbox==14.0.0", "pytz==2020.5", "pyyaml==5.4.1", "pyzmq==22.0.3", "readme-renderer==29.0", "redis==3.5.3", "requests-toolbelt==0.9.1", "requests==2.25.1", "rfc3986==1.4.0", "scikit-learn==0.24.1", "scipy==1.6.2", "secretstorage==3.3.1", "simplejson==3.17.2", "six==1.15.0", "snowballstemmer==2.1.0", "speaklater==1.3", "sphinx==3.4.3", "sphinxcontrib-applehelp==1.0.2", "sphinxcontrib-devhelp==1.0.2", "sphinxcontrib-github==0.1.3", "sphinxcontrib-gravizo==0.0.4", "sphinxcontrib-htmlhelp==1.0.3", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-log-cabinet==1.0.1", "sphinxcontrib-plantuml==0.20.1", "sphinxcontrib-qthelp==1.0.3", "sphinxcontrib-serializinghtml==1.1.4", "sqlalchemy-utils==0.36.8", "sqlalchemy==1.4.5", "statisticaldiagrams==20.5", "threadpoolctl==2.1.0", "tokenize-rt==4.1.0", "toml==0.10.2", "torch==1.8.1", "torchfile==0.1.0", "tornado==6.1", "tqdm==4.59.0", "twine==3.4.1", "typing-extensions==3.7.4.3", "uritemplate==3.0.1", "urllib3==1.26.4", "venv-run==0.1.0", "vine==5.0.0", "virtualenv-clone==0.5.4", "virtualenv==20.4.3", "visdom==0.1.8.9", "visitor==0.1.3", "wcwidth==0.1.8", "webencodings==0.5.1", "websocket-client==0.57.0", "werkzeug==1.0.1", "wget==3.2", "wheel==0.36.2", "wtforms==2.3.3", "zipp==3.4.1", ] + pytest_runner for reqs in requires_extras.values(): requires_extras["all"].extend(reqs) keywords = "" for kw in keywords_list: keywords += " " + kw packages = find_packages() def run_compile_requirements(): my_cmd_list = [ ['pip-compile', '-r', 'requirements' + os.sep + 'build.in'], ['pip-compile', '-r', 'requirements' + os.sep + 'docs.in'], ['pip-compile', '-r', 'requirements' + os.sep + 'tests.in'], ['pip-compile', '-r', 'requirements' + os.sep + 'dev.in'], ['pip', 'install', '-r', 'requirements' + os.sep + 'build.in'], ['pip', 'install', '-r', 'requirements' + os.sep + 'docs.in'], ['pip', 'install', '-r', 'requirements' + os.sep + 'tests.in'], ['pip', 'install', '-r', 'requirements' + os.sep + 'dev.in'], ] for my_cmd in my_cmd_list: returncode = subprocess.call(my_cmd, shell=True) if returncode == 0: logging.info("retcode: "+str(returncode)) else: logging.error("retcode: " + str(returncode)) return None def run_npm_install(): my_cmd = ['npm', 'install'] returncode = subprocess.call(my_cmd, shell=True) if returncode == 0: logging.info("retcode: "+str(returncode)) else: logging.error("retcode: " + str(returncode)) return None def get_python_requirements_from_txt(): my_cmd = ['bash', 'scripts'+os.sep+'script_get_python_requirements_from_txt.sh'] returncode = subprocess.call(my_cmd, shell=True) if returncode == 0: logging.info("retcode: "+str(returncode)) else: logging.error("retcode: " + str(returncode)) return None setup( name='flask-covid19', version=version, url='https://github.com/thomaswoehlke/covid19python.git', license='GNU General Public License v3 (GPLv3)', author='Thomas Woehlke', author_email='thomas.woehlke@gmail.com', description='Covid19 Data Aggregation - also a Project to learn Python Flask, SQLAlchemy, Celery et al.', classifiers=[ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows :: Windows 10", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Development Status :: 3 - Alpha", "Natural Language :: German", "Natural Language :: English", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Database :: Frontends", "Framework :: Flask", ], long_description=readme + history, long_description_content_type="text/markdown", keywords=keywords, packages=packages, zip_safe=False, include_package_data=True, entry_points={}, extras_require=requires_extras, install_requires=requires_dev, setup_requires=requires_build, tests_require=requires_test, scripts=[ 'scripts'+os.sep+'script_setup_requirements.py', 'scripts'+os.sep+'script_npm_install.py', 'scripts'+os.sep+'script_get_python_requirements_from_txt.py', ], python_requires=">= 3.8" )