├── .gitignore ├── README.md ├── airflow_django ├── __init__.py └── operators.py ├── poetry.lock └── pyproject.toml /.gitignore: -------------------------------------------------------------------------------- 1 | .venv 2 | .python-version 3 | *.egg-info/ 4 | .vscode 5 | dist/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Airflow Django 2 | 3 | TBD 4 | 5 | ## Install 6 | 7 | ### Poetry 8 | ```console 9 | poetry add airflow-django 10 | ``` 11 | 12 | ### Pipenv 13 | 14 | ```console 15 | pipenv install airflow-django 16 | ``` 17 | 18 | ### Pip 19 | 20 | ``` 21 | pip install airflow-django 22 | ``` 23 | 24 | ## Configuration 25 | 26 | ### Environment variables 27 | 28 | - `AIRFLOW_DJANGO_PATH_TO_SETTINGS_PY`: The directory, where `settings.py` is located (default: `/usr/src/app/project`) 29 | 30 | ## Quick start 31 | 32 | After installing [`airflow-django`](https://pypi.org/project/airflow-django/), set the `AIRFLOW_DJANGO_PATH_TO_SETTINGS_PY` variable. 33 | 34 | Then create your custom operator for tasks that aim to communicate with the Django ORM 35 | 36 | ```py 37 | from datetime import datetime, timedelta 38 | 39 | from airflow import DAG 40 | from airflow_django.operators import DjangoOperator 41 | 42 | from my_app.models import AmazingModel 43 | 44 | 45 | dag = DAG( 46 | 'amazing_dag', 47 | description='This is an amazing Dag', 48 | schedule_interval=timedelta(days=1), 49 | default_args={'start_date': datetime(2020, 3, 26)}, 50 | ) 51 | 52 | 53 | def create_an_amazing_instance(ds, **kwargs): 54 | amazing_instance = AmazingModel.objects.create() 55 | return amazing_instance 56 | 57 | 58 | run_this = DjangoOperator( 59 | task_id='create_an_amazing_instance', 60 | provide_context=True, 61 | python_callable=create_an_amazing_instance, 62 | dag=dag, 63 | ) 64 | ``` 65 | -------------------------------------------------------------------------------- /airflow_django/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parisk/airflow-django/6835db8048158357e381640a3b2631e1552d29a9/airflow_django/__init__.py -------------------------------------------------------------------------------- /airflow_django/operators.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from airflow.operators.python import PythonOperator 5 | 6 | 7 | DJANGO_ENVIRONMENT_HAS_BEEN_SETUP = False 8 | 9 | 10 | def setup_django_for_airflow(path_to_settings_py: str): 11 | global DJANGO_ENVIRONMENT_HAS_BEEN_SETUP 12 | 13 | if DJANGO_ENVIRONMENT_HAS_BEEN_SETUP: 14 | return 15 | 16 | base_directory = os.path.dirname(path_to_settings_py) 17 | project_name = os.path.basename(path_to_settings_py) 18 | 19 | # Add Django project root to path 20 | sys.path.append(base_directory) 21 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", f"{project_name}.settings") 22 | 23 | import django 24 | django.setup() 25 | 26 | DJANGO_ENVIRONMENT_HAS_BEEN_SETUP = True 27 | 28 | 29 | class DjangoOperator(PythonOperator): 30 | path_to_settings_py: str = os.getenv("AIRFLOW_DJANGO_PATH_TO_SETTINGS_PY", "/usr/src/app/project") 31 | 32 | def pre_execute(self, *args, **kwargs): 33 | setup_django_for_airflow(self.path_to_settings_py) -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "alembic" 3 | version = "1.5.2" 4 | description = "A database migration tool for SQLAlchemy." 5 | category = "main" 6 | optional = false 7 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" 8 | 9 | [package.dependencies] 10 | Mako = "*" 11 | python-dateutil = "*" 12 | python-editor = ">=0.3" 13 | SQLAlchemy = ">=1.3.0" 14 | 15 | [[package]] 16 | name = "apache-airflow" 17 | version = "1.10.6" 18 | description = "Programmatically author, schedule and monitor data pipelines" 19 | category = "main" 20 | optional = false 21 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" 22 | 23 | [package.dependencies] 24 | alembic = ">=1.0,<2.0" 25 | argcomplete = ">=1.10,<2.0" 26 | cached-property = ">=1.5,<2.0" 27 | colorlog = "4.0.2" 28 | configparser = ">=3.5.0,<3.6.0" 29 | croniter = ">=0.3.17,<0.4" 30 | dill = ">=0.2.2,<0.4" 31 | flask = ">=1.1.0,<2.0" 32 | flask-admin = "1.5.3" 33 | flask-appbuilder = ">=1.12.5,<2.0.0" 34 | flask-caching = ">=1.3.3,<1.4.0" 35 | flask-login = ">=0.3,<0.5" 36 | flask-swagger = "0.2.13" 37 | flask-wtf = ">=0.14.2,<0.15" 38 | funcsigs = "1.0.0" 39 | future = ">=0.16.0,<0.17" 40 | graphviz = ">=0.12" 41 | gunicorn = ">=19.5.0,<20.0" 42 | iso8601 = ">=0.1.12" 43 | jinja2 = ">=2.10.1,<2.11.0" 44 | json-merge-patch = "0.2" 45 | lazy-object-proxy = ">=1.3,<2.0" 46 | markdown = ">=2.5.2,<3.0" 47 | marshmallow-sqlalchemy = ">=0.16.1,<0.19.0" 48 | pandas = ">=0.17.1,<1.0.0" 49 | pendulum = "1.4.4" 50 | psutil = ">=4.2.0,<6.0.0" 51 | pygments = ">=2.0.1,<3.0" 52 | python-daemon = ">=2.1.1,<2.2" 53 | python-dateutil = ">=2.3,<3" 54 | requests = ">=2.20.0,<3" 55 | setproctitle = ">=1.1.8,<2" 56 | sqlalchemy = ">=1.3,<2.0" 57 | tabulate = ">=0.7.5,<0.9" 58 | tenacity = "4.12.0" 59 | termcolor = "1.1.0" 60 | text-unidecode = "1.2" 61 | thrift = ">=0.9.2" 62 | tzlocal = ">=1.4,<2.0.0" 63 | unicodecsv = ">=0.14.1" 64 | "zope.deprecation" = ">=4.0,<5.0" 65 | 66 | [package.extras] 67 | all = ["sendgrid (>=5.2.0,<6)", "beautifulsoup4 (>=4.7.1,<4.8.0)", "click (==6.7)", "coverage", "dumb-init (>=1.2.2)", "flake8 (>=3.6.0)", "flake8-colors", "freezegun", "ipdb", "jira", "mongomock", "moto (==1.3.5)", "nose", "nose-ignore-docstring (==0.2)", "nose-timer", "parameterized", "paramiko", "pre-commit", "pysftp", "pywinrm", "qds-sdk (>=1.9.6)", "rednose", "requests-mock", "yamllint", "mypy (==0.720)", "psycopg2 (>=2.7.4,<2.8)", "mysqlclient (>=1.3.6,<1.4)", "hmsclient (>=0.1.0)", "pyhive (>=0.6.0)", "pymssql (>=2.1.1)", "vertica-python (>=0.5.1)", "cloudant (>=0.5.9,<2.0)", "pydruid (>=0.4.1)", "pinotdb (==0.1.1)", "cassandra-driver (>=3.13.0)", "pymongo (>=3.6.0)", "dnspython (>=1.13.0,<2.0.0)", "sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "pysmbclient (>=0.1.3)", "boto3 (>=1.7.0,<1.8.0)", "slackclient (>=1.0.0,<2.0.0)", "cryptography (>=0.9.3)", "cx-Oracle (>=5.1.2)", "docker (>=3.0,<4.0)", "paramiko (>=2.1.1)", "pysftp (>=0.2.9)", "sshtunnel (>=0.1.4,<0.2)", "kubernetes (>=3.0.0)", "cryptography (>=2.0.0)", "celery (>=4.3,<5.0)", "flower (>=0.7.3,<1.0)", "tornado (>=4.2.0,<6.0)", "kombu (==4.6.3)", "azure-storage (>=0.34.0)", "redis (>=3.2,<4.0)", "google-api-python-client (>=1.6.0,<2.0.0dev)", "google-auth-httplib2 (>=0.0.1)", "google-auth (>=1.0.0,<2.0.0dev)", "google-cloud-bigtable (==0.33.0)", "google-cloud-container (>=0.1.1)", "google-cloud-dlp (>=0.11.0)", "google-cloud-language (>=1.1.1)", "google-cloud-spanner (>=1.7.1,<1.10.0)", "google-cloud-storage (>=1.16,<2.0)", "google-cloud-translate (>=1.3.3)", "google-cloud-videointelligence (>=1.7.0)", "google-cloud-vision (>=0.35.2)", "google-cloud-texttospeech (>=0.4.0)", "google-cloud-speech (>=0.36.3)", "grpcio-gcp (>=0.2.2)", "httplib2 (>=0.9,<1.0)", "pandas-gbq", "pyopenssl", "grpcio (>=1.15.0)", "datadog (>=0.14.0)", "zdesk", "jaydebeapi (>=1.1.1)", "ldap3 (>=2.5.1)", "pykerberos (>=1.1.13)", "requests-kerberos (>=0.10.0)", "thrift-sasl (>=0.2.0)", "bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)", "hdfs[kerberos,avro,dataframe] (>=2.0.4)", "python-jenkins (>=1.0.0)", "analytics-python (>=1.2.9)", "snowflake-connector-python (>=1.5.2)", "snowflake-sqlalchemy (>=1.1.0)", "elasticsearch (>=5.0.0,<6.0.0)", "elasticsearch-dsl (>=5.0.0,<6.0.0)", "sentry-sdk (>=0.8.0)", "blinker (>=1.1)", "azure-mgmt-resource (>=2.2.0)", "azure-mgmt-datalake-store (>=0.5.0)", "azure-datalake-store (>=0.0.45)", "azure-cosmos (>=3.0.1)", "atlasclient (>=0.1.2)", "azure-mgmt-containerinstance (>=1.5.0)", "cgroupspy (>=0.1.4)", "papermill[all] (>=1.0.0)", "nteract-scrapbook[all] (>=0.2.1)", "virtualenv", "sphinx (==1.8.5)", "mock", "contextdecorator", "sphinx (>=2.1.2)"] 68 | all_dbs = ["psycopg2 (>=2.7.4,<2.8)", "mysqlclient (>=1.3.6,<1.4)", "hmsclient (>=0.1.0)", "pyhive (>=0.6.0)", "pymssql (>=2.1.1)", "snakebite (>=2.7.8)", "vertica-python (>=0.5.1)", "cloudant (>=0.5.9,<2.0)", "pydruid (>=0.4.1)", "pinotdb (==0.1.1)", "cassandra-driver (>=3.13.0)", "pymongo (>=3.6.0)", "dnspython (>=1.13.0,<2.0.0)"] 69 | async = ["greenlet (>=0.4.9)", "eventlet (>=0.9.7)", "gevent (>=0.13)"] 70 | atlas = ["atlasclient (>=0.1.2)"] 71 | azure_blob_storage = ["azure-storage (>=0.34.0)"] 72 | azure_container_instances = ["azure-mgmt-containerinstance (>=1.5.0)"] 73 | azure_cosmos = ["azure-cosmos (>=3.0.1)"] 74 | azure_data_lake = ["azure-mgmt-resource (>=2.2.0)", "azure-mgmt-datalake-store (>=0.5.0)", "azure-datalake-store (>=0.0.45)"] 75 | cassandra = ["cassandra-driver (>=3.13.0)"] 76 | celery = ["celery (>=4.3,<5.0)", "flower (>=0.7.3,<1.0)", "tornado (>=4.2.0,<6.0)", "kombu (==4.6.3)"] 77 | cgroups = ["cgroupspy (>=0.1.4)"] 78 | cloudant = ["cloudant (>=0.5.9,<2.0)"] 79 | crypto = ["cryptography (>=0.9.3)"] 80 | dask = ["distributed (>=1.17.1,<2)"] 81 | databricks = ["requests (>=2.20.0,<3)"] 82 | datadog = ["datadog (>=0.14.0)"] 83 | devel = ["beautifulsoup4 (>=4.7.1,<4.8.0)", "click (==6.7)", "coverage", "dumb-init (>=1.2.2)", "flake8 (>=3.6.0)", "flake8-colors", "freezegun", "ipdb", "jira", "mongomock", "moto (==1.3.5)", "nose", "nose-ignore-docstring (==0.2)", "nose-timer", "parameterized", "paramiko", "pre-commit", "pysftp", "pywinrm", "qds-sdk (>=1.9.6)", "rednose", "requests-mock", "yamllint", "mypy (==0.720)", "kubernetes (>=3.0.0)", "cryptography (>=2.0.0)", "mysqlclient (>=1.3.6,<1.4)", "sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)", "boto3 (>=1.7.0,<1.8.0)", "cgroupspy (>=0.1.4)", "sphinx (==1.8.5)", "mock", "contextdecorator", "sphinx (>=2.1.2)"] 84 | devel_azure = ["beautifulsoup4 (>=4.7.1,<4.8.0)", "click (==6.7)", "coverage", "dumb-init (>=1.2.2)", "flake8 (>=3.6.0)", "flake8-colors", "freezegun", "ipdb", "jira", "mongomock", "moto (==1.3.5)", "nose", "nose-ignore-docstring (==0.2)", "nose-timer", "parameterized", "paramiko", "pre-commit", "pysftp", "pywinrm", "qds-sdk (>=1.9.6)", "rednose", "requests-mock", "yamllint", "mypy (==0.720)", "kubernetes (>=3.0.0)", "cryptography (>=2.0.0)", "mysqlclient (>=1.3.6,<1.4)", "sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)", "boto3 (>=1.7.0,<1.8.0)", "cgroupspy (>=0.1.4)", "azure-mgmt-resource (>=2.2.0)", "azure-mgmt-datalake-store (>=0.5.0)", "azure-datalake-store (>=0.0.45)", "azure-cosmos (>=3.0.1)", "sphinx (==1.8.5)", "mock", "contextdecorator", "sphinx (>=2.1.2)"] 85 | devel_ci = ["sendgrid (>=5.2.0,<6)", "beautifulsoup4 (>=4.7.1,<4.8.0)", "click (==6.7)", "coverage", "dumb-init (>=1.2.2)", "flake8 (>=3.6.0)", "flake8-colors", "freezegun", "ipdb", "jira", "mongomock", "moto (==1.3.5)", "nose", "nose-ignore-docstring (==0.2)", "nose-timer", "parameterized", "paramiko", "pre-commit", "pysftp", "pywinrm", "qds-sdk (>=1.9.6)", "rednose", "requests-mock", "yamllint", "mypy (==0.720)", "psycopg2 (>=2.7.4,<2.8)", "mysqlclient (>=1.3.6,<1.4)", "hmsclient (>=0.1.0)", "pyhive (>=0.6.0)", "pymssql (>=2.1.1)", "vertica-python (>=0.5.1)", "cloudant (>=0.5.9,<2.0)", "pydruid (>=0.4.1)", "pinotdb (==0.1.1)", "cassandra-driver (>=3.13.0)", "pymongo (>=3.6.0)", "dnspython (>=1.13.0,<2.0.0)", "sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "pysmbclient (>=0.1.3)", "boto3 (>=1.7.0,<1.8.0)", "slackclient (>=1.0.0,<2.0.0)", "cryptography (>=0.9.3)", "cx-Oracle (>=5.1.2)", "docker (>=3.0,<4.0)", "paramiko (>=2.1.1)", "pysftp (>=0.2.9)", "sshtunnel (>=0.1.4,<0.2)", "kubernetes (>=3.0.0)", "cryptography (>=2.0.0)", "celery (>=4.3,<5.0)", "flower (>=0.7.3,<1.0)", "tornado (>=4.2.0,<6.0)", "kombu (==4.6.3)", "azure-storage (>=0.34.0)", "redis (>=3.2,<4.0)", "google-api-python-client (>=1.6.0,<2.0.0dev)", "google-auth-httplib2 (>=0.0.1)", "google-auth (>=1.0.0,<2.0.0dev)", "google-cloud-bigtable (==0.33.0)", "google-cloud-container (>=0.1.1)", "google-cloud-dlp (>=0.11.0)", "google-cloud-language (>=1.1.1)", "google-cloud-spanner (>=1.7.1,<1.10.0)", "google-cloud-storage (>=1.16,<2.0)", "google-cloud-translate (>=1.3.3)", "google-cloud-videointelligence (>=1.7.0)", "google-cloud-vision (>=0.35.2)", "google-cloud-texttospeech (>=0.4.0)", "google-cloud-speech (>=0.36.3)", "grpcio-gcp (>=0.2.2)", "httplib2 (>=0.9,<1.0)", "pandas-gbq", "pyopenssl", "grpcio (>=1.15.0)", "datadog (>=0.14.0)", "zdesk", "jaydebeapi (>=1.1.1)", "ldap3 (>=2.5.1)", "pykerberos (>=1.1.13)", "requests-kerberos (>=0.10.0)", "thrift-sasl (>=0.2.0)", "bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)", "hdfs[kerberos,avro,dataframe] (>=2.0.4)", "python-jenkins (>=1.0.0)", "analytics-python (>=1.2.9)", "snowflake-connector-python (>=1.5.2)", "snowflake-sqlalchemy (>=1.1.0)", "elasticsearch (>=5.0.0,<6.0.0)", "elasticsearch-dsl (>=5.0.0,<6.0.0)", "sentry-sdk (>=0.8.0)", "blinker (>=1.1)", "azure-mgmt-resource (>=2.2.0)", "azure-mgmt-datalake-store (>=0.5.0)", "azure-datalake-store (>=0.0.45)", "azure-cosmos (>=3.0.1)", "atlasclient (>=0.1.2)", "azure-mgmt-containerinstance (>=1.5.0)", "cgroupspy (>=0.1.4)", "papermill[all] (>=1.0.0)", "nteract-scrapbook[all] (>=0.2.1)", "virtualenv", "sphinx (==1.8.5)", "mock", "contextdecorator", "sphinx (>=2.1.2)"] 86 | devel_hadoop = ["beautifulsoup4 (>=4.7.1,<4.8.0)", "click (==6.7)", "coverage", "dumb-init (>=1.2.2)", "flake8 (>=3.6.0)", "flake8-colors", "freezegun", "ipdb", "jira", "mongomock", "moto (==1.3.5)", "nose", "nose-ignore-docstring (==0.2)", "nose-timer", "parameterized", "paramiko", "pre-commit", "pysftp", "pywinrm", "qds-sdk (>=1.9.6)", "rednose", "requests-mock", "yamllint", "mypy (==0.720)", "kubernetes (>=3.0.0)", "cryptography (>=2.0.0)", "mysqlclient (>=1.3.6,<1.4)", "sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)", "boto3 (>=1.7.0,<1.8.0)", "cgroupspy (>=0.1.4)", "hmsclient (>=0.1.0)", "pyhive (>=0.6.0)", "snakebite (>=2.7.8)", "hdfs[kerberos,avro,dataframe] (>=2.0.4)", "pykerberos (>=1.1.13)", "requests-kerberos (>=0.10.0)", "thrift-sasl (>=0.2.0)", "snakebite[kerberos] (>=2.7.8)", "sphinx (==1.8.5)", "mock", "contextdecorator", "sphinx (>=2.1.2)"] 87 | doc = ["sphinx-argparse (>=0.1.13)", "sphinx-autoapi (==1.0.0)", "sphinx-rtd-theme (>=0.1.6)", "sphinxcontrib-httpdomain (>=1.7.0)", "sphinx (==1.8.5)", "sphinx (>=2.1.2)"] 88 | docker = ["docker (>=3.0,<4.0)"] 89 | druid = ["pydruid (>=0.4.1)"] 90 | elasticsearch = ["elasticsearch (>=5.0.0,<6.0.0)", "elasticsearch-dsl (>=5.0.0,<6.0.0)"] 91 | emr = ["boto3 (>=1.0.0,<1.8.0)"] 92 | gcp = ["google-api-python-client (>=1.6.0,<2.0.0dev)", "google-auth-httplib2 (>=0.0.1)", "google-auth (>=1.0.0,<2.0.0dev)", "google-cloud-bigtable (==0.33.0)", "google-cloud-container (>=0.1.1)", "google-cloud-dlp (>=0.11.0)", "google-cloud-language (>=1.1.1)", "google-cloud-spanner (>=1.7.1,<1.10.0)", "google-cloud-storage (>=1.16,<2.0)", "google-cloud-translate (>=1.3.3)", "google-cloud-videointelligence (>=1.7.0)", "google-cloud-vision (>=0.35.2)", "google-cloud-texttospeech (>=0.4.0)", "google-cloud-speech (>=0.36.3)", "grpcio-gcp (>=0.2.2)", "httplib2 (>=0.9,<1.0)", "pandas-gbq", "pyopenssl"] 93 | gcp_api = ["google-api-python-client (>=1.6.0,<2.0.0dev)", "google-auth-httplib2 (>=0.0.1)", "google-auth (>=1.0.0,<2.0.0dev)", "google-cloud-bigtable (==0.33.0)", "google-cloud-container (>=0.1.1)", "google-cloud-dlp (>=0.11.0)", "google-cloud-language (>=1.1.1)", "google-cloud-spanner (>=1.7.1,<1.10.0)", "google-cloud-storage (>=1.16,<2.0)", "google-cloud-translate (>=1.3.3)", "google-cloud-videointelligence (>=1.7.0)", "google-cloud-vision (>=0.35.2)", "google-cloud-texttospeech (>=0.4.0)", "google-cloud-speech (>=0.36.3)", "grpcio-gcp (>=0.2.2)", "httplib2 (>=0.9,<1.0)", "pandas-gbq", "pyopenssl"] 94 | github_enterprise = ["Flask-OAuthlib (>=0.9.1)", "oauthlib (>=1.1.2,!=2.0.3,!=2.0.4,!=2.0.5,<3.0.0)", "requests-oauthlib (==1.1.0)"] 95 | google_auth = ["Flask-OAuthlib (>=0.9.1)", "oauthlib (>=1.1.2,!=2.0.3,!=2.0.4,!=2.0.5,<3.0.0)", "requests-oauthlib (==1.1.0)"] 96 | grpc = ["grpcio (>=1.15.0)"] 97 | hdfs = ["snakebite (>=2.7.8)"] 98 | hive = ["hmsclient (>=0.1.0)", "pyhive (>=0.6.0)"] 99 | jdbc = ["jaydebeapi (>=1.1.1)"] 100 | jira = ["JIRA (>1.0.7)"] 101 | kerberos = ["pykerberos (>=1.1.13)", "requests-kerberos (>=0.10.0)", "thrift-sasl (>=0.2.0)", "snakebite[kerberos] (>=2.7.8)"] 102 | kubernetes = ["kubernetes (>=3.0.0)", "cryptography (>=2.0.0)"] 103 | ldap = ["ldap3 (>=2.5.1)"] 104 | mongo = ["pymongo (>=3.6.0)", "dnspython (>=1.13.0,<2.0.0)"] 105 | mssql = ["pymssql (>=2.1.1)"] 106 | mysql = ["mysqlclient (>=1.3.6,<1.4)"] 107 | oracle = ["cx-Oracle (>=5.1.2)"] 108 | papermill = ["papermill[all] (>=1.0.0)", "nteract-scrapbook[all] (>=0.2.1)"] 109 | password = ["bcrypt (>=2.0.0)", "flask-bcrypt (>=0.7.1)"] 110 | pinot = ["pinotdb (==0.1.1)"] 111 | postgres = ["psycopg2 (>=2.7.4,<2.8)"] 112 | qds = ["qds-sdk (>=1.10.4)"] 113 | rabbitmq = ["librabbitmq (>=1.6.1)"] 114 | redis = ["redis (>=3.2,<4.0)"] 115 | s3 = ["boto3 (>=1.7.0,<1.8.0)"] 116 | salesforce = ["simple-salesforce (>=0.72)"] 117 | samba = ["pysmbclient (>=0.1.3)"] 118 | segment = ["analytics-python (>=1.2.9)"] 119 | sendgrid = ["sendgrid (>=5.2.0,<6)"] 120 | sentry = ["sentry-sdk (>=0.8.0)", "blinker (>=1.1)"] 121 | slack = ["slackclient (>=1.0.0,<2.0.0)"] 122 | snowflake = ["snowflake-connector-python (>=1.5.2)", "snowflake-sqlalchemy (>=1.1.0)"] 123 | ssh = ["paramiko (>=2.1.1)", "pysftp (>=0.2.9)", "sshtunnel (>=0.1.4,<0.2)"] 124 | statsd = ["statsd (>=3.3.0,<4.0)"] 125 | vertica = ["vertica-python (>=0.5.1)"] 126 | virtualenv = ["virtualenv"] 127 | webhdfs = ["hdfs[kerberos,avro,dataframe] (>=2.0.4)"] 128 | winrm = ["pywinrm (==0.2.2)"] 129 | 130 | [[package]] 131 | name = "apispec" 132 | version = "4.0.0" 133 | description = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)." 134 | category = "main" 135 | optional = false 136 | python-versions = ">=3.6" 137 | 138 | [package.dependencies] 139 | PyYAML = {version = ">=3.10", optional = true, markers = "extra == \"yaml\""} 140 | 141 | [package.extras] 142 | dev = ["PyYAML (>=3.10)", "prance[osv] (>=0.11)", "marshmallow (>=3.0.0)", "pytest", "mock", "flake8 (==3.8.3)", "flake8-bugbear (==20.1.4)", "pre-commit (>=2.4,<3.0)", "tox"] 143 | docs = ["marshmallow (>=3.0.0)", "pyyaml (==5.3.1)", "sphinx (==3.2.1)", "sphinx-issues (==1.2.0)", "sphinx-rtd-theme (==0.5.0)"] 144 | lint = ["flake8 (==3.8.3)", "flake8-bugbear (==20.1.4)", "pre-commit (>=2.4,<3.0)"] 145 | tests = ["PyYAML (>=3.10)", "prance[osv] (>=0.11)", "marshmallow (>=3.0.0)", "pytest", "mock"] 146 | validation = ["prance[osv] (>=0.11)"] 147 | yaml = ["PyYAML (>=3.10)"] 148 | 149 | [[package]] 150 | name = "appdirs" 151 | version = "1.4.4" 152 | description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." 153 | category = "dev" 154 | optional = false 155 | python-versions = "*" 156 | 157 | [[package]] 158 | name = "argcomplete" 159 | version = "1.12.2" 160 | description = "Bash tab completion for argparse" 161 | category = "main" 162 | optional = false 163 | python-versions = "*" 164 | 165 | [package.dependencies] 166 | importlib-metadata = {version = ">=0.23,<4", markers = "python_version == \"3.6\" or python_version == \"3.7\""} 167 | 168 | [package.extras] 169 | test = ["coverage", "flake8", "pexpect", "wheel"] 170 | 171 | [[package]] 172 | name = "asgiref" 173 | version = "3.3.1" 174 | description = "ASGI specs, helper code, and adapters" 175 | category = "main" 176 | optional = false 177 | python-versions = ">=3.5" 178 | 179 | [package.extras] 180 | tests = ["pytest", "pytest-asyncio"] 181 | 182 | [[package]] 183 | name = "attrs" 184 | version = "20.3.0" 185 | description = "Classes Without Boilerplate" 186 | category = "main" 187 | optional = false 188 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 189 | 190 | [package.extras] 191 | dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] 192 | docs = ["furo", "sphinx", "zope.interface"] 193 | tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] 194 | tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] 195 | 196 | [[package]] 197 | name = "babel" 198 | version = "2.9.0" 199 | description = "Internationalization utilities" 200 | category = "main" 201 | optional = false 202 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 203 | 204 | [package.dependencies] 205 | pytz = ">=2015.7" 206 | 207 | [[package]] 208 | name = "black" 209 | version = "19.10b0" 210 | description = "The uncompromising code formatter." 211 | category = "dev" 212 | optional = false 213 | python-versions = ">=3.6" 214 | 215 | [package.dependencies] 216 | appdirs = "*" 217 | attrs = ">=18.1.0" 218 | click = ">=6.5" 219 | pathspec = ">=0.6,<1" 220 | regex = "*" 221 | toml = ">=0.9.4" 222 | typed-ast = ">=1.4.0" 223 | 224 | [package.extras] 225 | d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] 226 | 227 | [[package]] 228 | name = "cached-property" 229 | version = "1.5.2" 230 | description = "A decorator for caching properties in classes." 231 | category = "main" 232 | optional = false 233 | python-versions = "*" 234 | 235 | [[package]] 236 | name = "certifi" 237 | version = "2020.12.5" 238 | description = "Python package for providing Mozilla's CA Bundle." 239 | category = "main" 240 | optional = false 241 | python-versions = "*" 242 | 243 | [[package]] 244 | name = "chardet" 245 | version = "4.0.0" 246 | description = "Universal encoding detector for Python 2 and 3" 247 | category = "main" 248 | optional = false 249 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 250 | 251 | [[package]] 252 | name = "click" 253 | version = "7.1.2" 254 | description = "Composable command line interface toolkit" 255 | category = "main" 256 | optional = false 257 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 258 | 259 | [[package]] 260 | name = "colorama" 261 | version = "0.4.4" 262 | description = "Cross-platform colored terminal text." 263 | category = "main" 264 | optional = false 265 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 266 | 267 | [[package]] 268 | name = "colorlog" 269 | version = "4.0.2" 270 | description = "Log formatting with colors!" 271 | category = "main" 272 | optional = false 273 | python-versions = "*" 274 | 275 | [package.dependencies] 276 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 277 | 278 | [[package]] 279 | name = "configparser" 280 | version = "3.5.3" 281 | description = "This library brings the updated configparser from Python 3.5 to Python 2.6-3.5." 282 | category = "main" 283 | optional = false 284 | python-versions = ">=2.6" 285 | 286 | [[package]] 287 | name = "croniter" 288 | version = "0.3.37" 289 | description = "croniter provides iteration for datetime object with cron like format" 290 | category = "main" 291 | optional = false 292 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 293 | 294 | [package.dependencies] 295 | natsort = "*" 296 | python-dateutil = "*" 297 | 298 | [[package]] 299 | name = "dill" 300 | version = "0.3.3" 301 | description = "serialize all of python" 302 | category = "main" 303 | optional = false 304 | python-versions = ">=2.6, !=3.0.*" 305 | 306 | [package.extras] 307 | graph = ["objgraph (>=1.7.2)"] 308 | 309 | [[package]] 310 | name = "django" 311 | version = "3.1.5" 312 | description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." 313 | category = "main" 314 | optional = false 315 | python-versions = ">=3.6" 316 | 317 | [package.dependencies] 318 | asgiref = ">=3.2.10,<4" 319 | pytz = "*" 320 | sqlparse = ">=0.2.2" 321 | 322 | [package.extras] 323 | argon2 = ["argon2-cffi (>=16.1.0)"] 324 | bcrypt = ["bcrypt"] 325 | 326 | [[package]] 327 | name = "docutils" 328 | version = "0.16" 329 | description = "Docutils -- Python Documentation Utilities" 330 | category = "main" 331 | optional = false 332 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 333 | 334 | [[package]] 335 | name = "flask" 336 | version = "1.1.2" 337 | description = "A simple framework for building complex web applications." 338 | category = "main" 339 | optional = false 340 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 341 | 342 | [package.dependencies] 343 | click = ">=5.1" 344 | itsdangerous = ">=0.24" 345 | Jinja2 = ">=2.10.1" 346 | Werkzeug = ">=0.15" 347 | 348 | [package.extras] 349 | dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] 350 | docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] 351 | dotenv = ["python-dotenv"] 352 | 353 | [[package]] 354 | name = "flask-admin" 355 | version = "1.5.3" 356 | description = "Simple and extensible admin interface framework for Flask" 357 | category = "main" 358 | optional = false 359 | python-versions = "*" 360 | 361 | [package.dependencies] 362 | Flask = ">=0.7" 363 | wtforms = "*" 364 | 365 | [package.extras] 366 | aws = ["boto"] 367 | azure = ["azure-storage-blob"] 368 | 369 | [[package]] 370 | name = "flask-appbuilder" 371 | version = "1.13.1" 372 | description = "Simple and rapid application development framework, built on top of Flask. includes detailed security, auto CRUD generation for your models, google charts and much more." 373 | category = "main" 374 | optional = false 375 | python-versions = "*" 376 | 377 | [package.dependencies] 378 | apispec = {version = ">=1.1.1", extras = ["yaml"]} 379 | click = ">=6.7,<8" 380 | colorama = ">=0.3.9,<1" 381 | Flask = ">=0.12,<2" 382 | Flask-Babel = ">=0.11.1,<1" 383 | Flask-JWT-Extended = ">=3.18,<4" 384 | Flask-Login = ">=0.3,<0.5" 385 | Flask-OpenID = ">=1.2.5,<2" 386 | Flask-SQLAlchemy = ">=2.3,<3" 387 | Flask-WTF = ">=0.14.2,<1" 388 | jsonschema = ">=3.0.1" 389 | marshmallow = ">=2.18.0,<2.20" 390 | marshmallow-enum = ">=1.4.1,<2" 391 | marshmallow-sqlalchemy = ">=0.16.1" 392 | prison = "0.1.0" 393 | PyJWT = ">=1.7.1" 394 | python-dateutil = ">=2.3,<3" 395 | 396 | [[package]] 397 | name = "flask-babel" 398 | version = "0.12.2" 399 | description = "Adds i18n/l10n support to Flask applications" 400 | category = "main" 401 | optional = false 402 | python-versions = "*" 403 | 404 | [package.dependencies] 405 | Babel = ">=2.3" 406 | Flask = "*" 407 | Jinja2 = ">=2.5" 408 | 409 | [[package]] 410 | name = "flask-caching" 411 | version = "1.3.3" 412 | description = "Adds caching support to your Flask application" 413 | category = "main" 414 | optional = false 415 | python-versions = "*" 416 | 417 | [package.dependencies] 418 | Flask = "*" 419 | Werkzeug = ">=0.12" 420 | 421 | [[package]] 422 | name = "flask-jwt-extended" 423 | version = "3.24.1" 424 | description = "Extended JWT integration with Flask" 425 | category = "main" 426 | optional = false 427 | python-versions = "*" 428 | 429 | [package.dependencies] 430 | Flask = ">=1.0" 431 | PyJWT = ">=1.6.4" 432 | six = "*" 433 | Werkzeug = ">=0.14" 434 | 435 | [package.extras] 436 | asymmetric_crypto = ["cryptography (>=2.3)"] 437 | 438 | [[package]] 439 | name = "flask-login" 440 | version = "0.4.1" 441 | description = "User session management for Flask" 442 | category = "main" 443 | optional = false 444 | python-versions = "*" 445 | 446 | [package.dependencies] 447 | Flask = "*" 448 | 449 | [[package]] 450 | name = "flask-openid" 451 | version = "1.2.5" 452 | description = "OpenID support for Flask" 453 | category = "main" 454 | optional = false 455 | python-versions = "*" 456 | 457 | [package.dependencies] 458 | Flask = ">=0.3" 459 | python-openid = ">=2.0" 460 | 461 | [[package]] 462 | name = "flask-sqlalchemy" 463 | version = "2.4.4" 464 | description = "Adds SQLAlchemy support to your Flask application." 465 | category = "main" 466 | optional = false 467 | python-versions = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*" 468 | 469 | [package.dependencies] 470 | Flask = ">=0.10" 471 | SQLAlchemy = ">=0.8.0" 472 | 473 | [[package]] 474 | name = "flask-swagger" 475 | version = "0.2.13" 476 | description = "Extract swagger specs from your flask project" 477 | category = "main" 478 | optional = false 479 | python-versions = "*" 480 | 481 | [package.dependencies] 482 | Flask = ">=0.10" 483 | PyYAML = ">=3.0" 484 | 485 | [[package]] 486 | name = "flask-wtf" 487 | version = "0.14.3" 488 | description = "Simple integration of Flask and WTForms." 489 | category = "main" 490 | optional = false 491 | python-versions = "*" 492 | 493 | [package.dependencies] 494 | Flask = "*" 495 | itsdangerous = "*" 496 | WTForms = "*" 497 | 498 | [[package]] 499 | name = "funcsigs" 500 | version = "1.0.0" 501 | description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" 502 | category = "main" 503 | optional = false 504 | python-versions = "*" 505 | 506 | [package.dependencies] 507 | ordereddict = "*" 508 | 509 | [[package]] 510 | name = "future" 511 | version = "0.16.0" 512 | description = "Clean single-source support for Python 3 and 2" 513 | category = "main" 514 | optional = false 515 | python-versions = "*" 516 | 517 | [[package]] 518 | name = "graphviz" 519 | version = "0.16" 520 | description = "Simple Python interface for Graphviz" 521 | category = "main" 522 | optional = false 523 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" 524 | 525 | [package.extras] 526 | dev = ["tox (>=3)", "flake8", "pep8-naming", "wheel", "twine"] 527 | docs = ["sphinx (>=1.8)", "sphinx-rtd-theme"] 528 | test = ["mock (>=3)", "pytest (>=4)", "pytest-mock (>=2)", "pytest-cov"] 529 | 530 | [[package]] 531 | name = "gunicorn" 532 | version = "19.10.0" 533 | description = "WSGI HTTP Server for UNIX" 534 | category = "main" 535 | optional = false 536 | python-versions = ">=2.6, !=3.0.*, !=3.1.*" 537 | 538 | [package.extras] 539 | eventlet = ["eventlet (>=0.9.7)"] 540 | gevent = ["gevent (>=0.13)"] 541 | tornado = ["tornado (>=0.2)"] 542 | 543 | [[package]] 544 | name = "idna" 545 | version = "2.10" 546 | description = "Internationalized Domain Names in Applications (IDNA)" 547 | category = "main" 548 | optional = false 549 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 550 | 551 | [[package]] 552 | name = "importlib-metadata" 553 | version = "3.4.0" 554 | description = "Read metadata from Python packages" 555 | category = "main" 556 | optional = false 557 | python-versions = ">=3.6" 558 | 559 | [package.dependencies] 560 | typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} 561 | zipp = ">=0.5" 562 | 563 | [package.extras] 564 | docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] 565 | testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] 566 | 567 | [[package]] 568 | name = "iso8601" 569 | version = "0.1.13" 570 | description = "Simple module to parse ISO 8601 dates" 571 | category = "main" 572 | optional = false 573 | python-versions = "*" 574 | 575 | [[package]] 576 | name = "itsdangerous" 577 | version = "1.1.0" 578 | description = "Various helpers to pass data to untrusted environments and back." 579 | category = "main" 580 | optional = false 581 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 582 | 583 | [[package]] 584 | name = "jinja2" 585 | version = "2.10.3" 586 | description = "A very fast and expressive template engine." 587 | category = "main" 588 | optional = false 589 | python-versions = "*" 590 | 591 | [package.dependencies] 592 | MarkupSafe = ">=0.23" 593 | 594 | [package.extras] 595 | i18n = ["Babel (>=0.8)"] 596 | 597 | [[package]] 598 | name = "json-merge-patch" 599 | version = "0.2" 600 | description = "JSON Merge Patch library (https://tools.ietf.org/html/rfc7386)" 601 | category = "main" 602 | optional = false 603 | python-versions = "*" 604 | 605 | [[package]] 606 | name = "jsonschema" 607 | version = "3.2.0" 608 | description = "An implementation of JSON Schema validation for Python" 609 | category = "main" 610 | optional = false 611 | python-versions = "*" 612 | 613 | [package.dependencies] 614 | attrs = ">=17.4.0" 615 | importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} 616 | pyrsistent = ">=0.14.0" 617 | six = ">=1.11.0" 618 | 619 | [package.extras] 620 | format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] 621 | format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] 622 | 623 | [[package]] 624 | name = "lazy-object-proxy" 625 | version = "1.5.2" 626 | description = "A fast and thorough lazy object proxy." 627 | category = "main" 628 | optional = false 629 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 630 | 631 | [[package]] 632 | name = "lockfile" 633 | version = "0.12.2" 634 | description = "Platform-independent file locking module" 635 | category = "main" 636 | optional = false 637 | python-versions = "*" 638 | 639 | [[package]] 640 | name = "mako" 641 | version = "1.1.4" 642 | description = "A super-fast templating language that borrows the best ideas from the existing templating languages." 643 | category = "main" 644 | optional = false 645 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 646 | 647 | [package.dependencies] 648 | MarkupSafe = ">=0.9.2" 649 | 650 | [package.extras] 651 | babel = ["babel"] 652 | lingua = ["lingua"] 653 | 654 | [[package]] 655 | name = "markdown" 656 | version = "2.6.11" 657 | description = "Python implementation of Markdown." 658 | category = "main" 659 | optional = false 660 | python-versions = "*" 661 | 662 | [[package]] 663 | name = "markupsafe" 664 | version = "1.1.1" 665 | description = "Safely add untrusted strings to HTML/XML markup." 666 | category = "main" 667 | optional = false 668 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" 669 | 670 | [[package]] 671 | name = "marshmallow" 672 | version = "2.19.5" 673 | description = "A lightweight library for converting complex datatypes to and from native Python datatypes." 674 | category = "main" 675 | optional = false 676 | python-versions = "*" 677 | 678 | [package.extras] 679 | dev = ["python-dateutil", "simplejson", "pytest", "pytz", "flake8 (==3.7.4)", "tox"] 680 | lint = ["flake8 (==3.7.4)"] 681 | reco = ["python-dateutil", "simplejson"] 682 | tests = ["pytest", "pytz"] 683 | 684 | [[package]] 685 | name = "marshmallow-enum" 686 | version = "1.5.1" 687 | description = "Enum field for Marshmallow" 688 | category = "main" 689 | optional = false 690 | python-versions = "*" 691 | 692 | [package.dependencies] 693 | marshmallow = ">=2.0.0" 694 | 695 | [[package]] 696 | name = "marshmallow-sqlalchemy" 697 | version = "0.18.0" 698 | description = "SQLAlchemy integration with the marshmallow (de)serialization library" 699 | category = "main" 700 | optional = false 701 | python-versions = "*" 702 | 703 | [package.dependencies] 704 | marshmallow = ">=2.0.0" 705 | SQLAlchemy = ">=0.9.7" 706 | 707 | [package.extras] 708 | dev = ["pytest", "mock", "flake8 (==3.7.8)", "pre-commit (>=1.18,<2.0)", "tox", "flake8-bugbear (==19.8.0)"] 709 | docs = ["sphinx (==2.2.0)", "alabaster (==0.7.12)", "sphinx-issues (==1.2.0)"] 710 | lint = ["flake8 (==3.7.8)", "pre-commit (>=1.18,<2.0)", "flake8-bugbear (==19.8.0)"] 711 | tests = ["pytest", "mock"] 712 | 713 | [[package]] 714 | name = "natsort" 715 | version = "7.1.1" 716 | description = "Simple yet flexible natural sorting in Python." 717 | category = "main" 718 | optional = false 719 | python-versions = ">=3.4" 720 | 721 | [package.extras] 722 | fast = ["fastnumbers (>=2.0.0)"] 723 | icu = ["PyICU (>=1.0.0)"] 724 | 725 | [[package]] 726 | name = "numpy" 727 | version = "1.19.5" 728 | description = "NumPy is the fundamental package for array computing with Python." 729 | category = "main" 730 | optional = false 731 | python-versions = ">=3.6" 732 | 733 | [[package]] 734 | name = "ordereddict" 735 | version = "1.1" 736 | description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6." 737 | category = "main" 738 | optional = false 739 | python-versions = "*" 740 | 741 | [[package]] 742 | name = "pandas" 743 | version = "0.25.3" 744 | description = "Powerful data structures for data analysis, time series, and statistics" 745 | category = "main" 746 | optional = false 747 | python-versions = ">=3.5.3" 748 | 749 | [package.dependencies] 750 | numpy = ">=1.13.3" 751 | python-dateutil = ">=2.6.1" 752 | pytz = ">=2017.2" 753 | 754 | [package.extras] 755 | test = ["pytest (>=4.0.2)", "pytest-xdist", "hypothesis (>=3.58)"] 756 | 757 | [[package]] 758 | name = "pathspec" 759 | version = "0.8.1" 760 | description = "Utility library for gitignore style pattern matching of file paths." 761 | category = "dev" 762 | optional = false 763 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 764 | 765 | [[package]] 766 | name = "pendulum" 767 | version = "1.4.4" 768 | description = "Python datetimes made easy." 769 | category = "main" 770 | optional = false 771 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 772 | 773 | [package.dependencies] 774 | python-dateutil = ">=2.6.0.0,<3.0.0.0" 775 | pytzdata = ">=2018.3.0.0" 776 | tzlocal = ">=1.5.0.0,<2.0.0.0" 777 | 778 | [[package]] 779 | name = "prison" 780 | version = "0.1.0" 781 | description = "Rison encoder/decoder" 782 | category = "main" 783 | optional = false 784 | python-versions = "*" 785 | 786 | [package.dependencies] 787 | requests = "*" 788 | six = "*" 789 | 790 | [package.extras] 791 | dev = ["nose", "pipreqs", "twine"] 792 | 793 | [[package]] 794 | name = "psutil" 795 | version = "5.8.0" 796 | description = "Cross-platform lib for process and system monitoring in Python." 797 | category = "main" 798 | optional = false 799 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 800 | 801 | [package.extras] 802 | test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] 803 | 804 | [[package]] 805 | name = "pygments" 806 | version = "2.7.4" 807 | description = "Pygments is a syntax highlighting package written in Python." 808 | category = "main" 809 | optional = false 810 | python-versions = ">=3.5" 811 | 812 | [[package]] 813 | name = "pyjwt" 814 | version = "2.0.1" 815 | description = "JSON Web Token implementation in Python" 816 | category = "main" 817 | optional = false 818 | python-versions = ">=3.6" 819 | 820 | [package.extras] 821 | crypto = ["cryptography (>=3.3.1,<4.0.0)"] 822 | dev = ["sphinx", "sphinx-rtd-theme", "zope.interface", "cryptography (>=3.3.1,<4.0.0)", "pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)", "mypy", "pre-commit"] 823 | docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] 824 | tests = ["pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)"] 825 | 826 | [[package]] 827 | name = "pyrsistent" 828 | version = "0.17.3" 829 | description = "Persistent/Functional/Immutable data structures" 830 | category = "main" 831 | optional = false 832 | python-versions = ">=3.5" 833 | 834 | [[package]] 835 | name = "python-daemon" 836 | version = "2.1.2" 837 | description = "Library to implement a well-behaved Unix daemon process." 838 | category = "main" 839 | optional = false 840 | python-versions = "*" 841 | 842 | [package.dependencies] 843 | docutils = "*" 844 | lockfile = ">=0.10" 845 | 846 | [[package]] 847 | name = "python-dateutil" 848 | version = "2.8.1" 849 | description = "Extensions to the standard Python datetime module" 850 | category = "main" 851 | optional = false 852 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 853 | 854 | [package.dependencies] 855 | six = ">=1.5" 856 | 857 | [[package]] 858 | name = "python-editor" 859 | version = "1.0.4" 860 | description = "Programmatically open an editor, capture the result." 861 | category = "main" 862 | optional = false 863 | python-versions = "*" 864 | 865 | [[package]] 866 | name = "python-openid" 867 | version = "2.2.5" 868 | description = "OpenID support for servers and consumers." 869 | category = "main" 870 | optional = false 871 | python-versions = "*" 872 | 873 | [[package]] 874 | name = "pytz" 875 | version = "2020.5" 876 | description = "World timezone definitions, modern and historical" 877 | category = "main" 878 | optional = false 879 | python-versions = "*" 880 | 881 | [[package]] 882 | name = "pytzdata" 883 | version = "2020.1" 884 | description = "The Olson timezone database for Python." 885 | category = "main" 886 | optional = false 887 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 888 | 889 | [[package]] 890 | name = "pyyaml" 891 | version = "5.4.1" 892 | description = "YAML parser and emitter for Python" 893 | category = "main" 894 | optional = false 895 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" 896 | 897 | [[package]] 898 | name = "regex" 899 | version = "2020.11.13" 900 | description = "Alternative regular expression module, to replace re." 901 | category = "dev" 902 | optional = false 903 | python-versions = "*" 904 | 905 | [[package]] 906 | name = "requests" 907 | version = "2.25.1" 908 | description = "Python HTTP for Humans." 909 | category = "main" 910 | optional = false 911 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 912 | 913 | [package.dependencies] 914 | certifi = ">=2017.4.17" 915 | chardet = ">=3.0.2,<5" 916 | idna = ">=2.5,<3" 917 | urllib3 = ">=1.21.1,<1.27" 918 | 919 | [package.extras] 920 | security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] 921 | socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] 922 | 923 | [[package]] 924 | name = "setproctitle" 925 | version = "1.2.2" 926 | description = "A Python module to customize the process title" 927 | category = "main" 928 | optional = false 929 | python-versions = ">=3.6" 930 | 931 | [package.extras] 932 | test = ["pytest (>=6.1,<6.2)"] 933 | 934 | [[package]] 935 | name = "six" 936 | version = "1.15.0" 937 | description = "Python 2 and 3 compatibility utilities" 938 | category = "main" 939 | optional = false 940 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 941 | 942 | [[package]] 943 | name = "sqlalchemy" 944 | version = "1.3.22" 945 | description = "Database Abstraction Library" 946 | category = "main" 947 | optional = false 948 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 949 | 950 | [package.extras] 951 | mssql = ["pyodbc"] 952 | mssql_pymssql = ["pymssql"] 953 | mssql_pyodbc = ["pyodbc"] 954 | mysql = ["mysqlclient"] 955 | oracle = ["cx-oracle"] 956 | postgresql = ["psycopg2"] 957 | postgresql_pg8000 = ["pg8000"] 958 | postgresql_psycopg2binary = ["psycopg2-binary"] 959 | postgresql_psycopg2cffi = ["psycopg2cffi"] 960 | pymysql = ["pymysql"] 961 | 962 | [[package]] 963 | name = "sqlparse" 964 | version = "0.4.1" 965 | description = "A non-validating SQL parser." 966 | category = "main" 967 | optional = false 968 | python-versions = ">=3.5" 969 | 970 | [[package]] 971 | name = "tabulate" 972 | version = "0.8.7" 973 | description = "Pretty-print tabular data" 974 | category = "main" 975 | optional = false 976 | python-versions = "*" 977 | 978 | [package.extras] 979 | widechars = ["wcwidth"] 980 | 981 | [[package]] 982 | name = "tenacity" 983 | version = "4.12.0" 984 | description = "Retry code until it succeeeds" 985 | category = "main" 986 | optional = false 987 | python-versions = "*" 988 | 989 | [package.dependencies] 990 | six = ">=1.9.0" 991 | 992 | [[package]] 993 | name = "termcolor" 994 | version = "1.1.0" 995 | description = "ANSII Color formatting for output in terminal." 996 | category = "main" 997 | optional = false 998 | python-versions = "*" 999 | 1000 | [[package]] 1001 | name = "text-unidecode" 1002 | version = "1.2" 1003 | description = "The most basic Text::Unidecode port" 1004 | category = "main" 1005 | optional = false 1006 | python-versions = "*" 1007 | 1008 | [[package]] 1009 | name = "thrift" 1010 | version = "0.13.0" 1011 | description = "Python bindings for the Apache Thrift RPC system" 1012 | category = "main" 1013 | optional = false 1014 | python-versions = "*" 1015 | 1016 | [package.dependencies] 1017 | six = ">=1.7.2" 1018 | 1019 | [package.extras] 1020 | all = ["tornado (>=4.0)", "twisted"] 1021 | tornado = ["tornado (>=4.0)"] 1022 | twisted = ["twisted"] 1023 | 1024 | [[package]] 1025 | name = "toml" 1026 | version = "0.10.2" 1027 | description = "Python Library for Tom's Obvious, Minimal Language" 1028 | category = "dev" 1029 | optional = false 1030 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 1031 | 1032 | [[package]] 1033 | name = "typed-ast" 1034 | version = "1.4.2" 1035 | description = "a fork of Python 2 and 3 ast modules with type comment support" 1036 | category = "dev" 1037 | optional = false 1038 | python-versions = "*" 1039 | 1040 | [[package]] 1041 | name = "typing-extensions" 1042 | version = "3.7.4.3" 1043 | description = "Backported and Experimental Type Hints for Python 3.5+" 1044 | category = "main" 1045 | optional = false 1046 | python-versions = "*" 1047 | 1048 | [[package]] 1049 | name = "tzlocal" 1050 | version = "1.5.1" 1051 | description = "tzinfo object for the local timezone" 1052 | category = "main" 1053 | optional = false 1054 | python-versions = "*" 1055 | 1056 | [package.dependencies] 1057 | pytz = "*" 1058 | 1059 | [[package]] 1060 | name = "unicodecsv" 1061 | version = "0.14.1" 1062 | description = "Python2's stdlib csv module is nice, but it doesn't support unicode. This module is a drop-in replacement which *does*." 1063 | category = "main" 1064 | optional = false 1065 | python-versions = "*" 1066 | 1067 | [[package]] 1068 | name = "urllib3" 1069 | version = "1.22" 1070 | description = "HTTP library with thread-safe connection pooling, file post, and more." 1071 | category = "main" 1072 | optional = false 1073 | python-versions = "*" 1074 | 1075 | [package.extras] 1076 | secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] 1077 | socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] 1078 | 1079 | [[package]] 1080 | name = "werkzeug" 1081 | version = "1.0.1" 1082 | description = "The comprehensive WSGI web application library." 1083 | category = "main" 1084 | optional = false 1085 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 1086 | 1087 | [package.extras] 1088 | dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"] 1089 | watchdog = ["watchdog"] 1090 | 1091 | [[package]] 1092 | name = "wtforms" 1093 | version = "2.3.3" 1094 | description = "A flexible forms validation and rendering library for Python web development." 1095 | category = "main" 1096 | optional = false 1097 | python-versions = "*" 1098 | 1099 | [package.dependencies] 1100 | MarkupSafe = "*" 1101 | 1102 | [package.extras] 1103 | email = ["email-validator"] 1104 | ipaddress = ["ipaddress"] 1105 | locale = ["Babel (>=1.3)"] 1106 | 1107 | [[package]] 1108 | name = "zipp" 1109 | version = "3.4.0" 1110 | description = "Backport of pathlib-compatible object wrapper for zip files" 1111 | category = "main" 1112 | optional = false 1113 | python-versions = ">=3.6" 1114 | 1115 | [package.extras] 1116 | docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] 1117 | testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] 1118 | 1119 | [[package]] 1120 | name = "zope.deprecation" 1121 | version = "4.4.0" 1122 | description = "Zope Deprecation Infrastructure" 1123 | category = "main" 1124 | optional = false 1125 | python-versions = "*" 1126 | 1127 | [package.extras] 1128 | docs = ["sphinx"] 1129 | test = ["zope.testrunner"] 1130 | 1131 | [metadata] 1132 | lock-version = "1.1" 1133 | python-versions = ">=3.6" 1134 | content-hash = "b3c41c500f0594fa778922696e29277c254907fed0057e32c64d50c5e6e2870b" 1135 | 1136 | [metadata.files] 1137 | alembic = [ 1138 | {file = "alembic-1.5.2-py2.py3-none-any.whl", hash = "sha256:c057488cc8ac7c4d06025ea3907e1a4dd07af70376fa149cf6bd2bc11b43076f"}, 1139 | {file = "alembic-1.5.2.tar.gz", hash = "sha256:a4de8d3525a95a96d59342e14b95cab5956c25b0907dce1549bb4e3e7958f4c2"}, 1140 | ] 1141 | apache-airflow = [ 1142 | {file = "apache-airflow-1.10.6.tar.gz", hash = "sha256:7c18bf991732151ecb48a3ba2dca23294a737592191460e259c5ba2c2a28a471"}, 1143 | {file = "apache_airflow-1.10.6-py2.py3-none-any.whl", hash = "sha256:d40ef7bd0fe106163be1e3688db353a8ff2d3ed9d038aee81a2f6fcbef5a07fc"}, 1144 | ] 1145 | apispec = [ 1146 | {file = "apispec-4.0.0-py2.py3-none-any.whl", hash = "sha256:20d271f7c8d130719be223fdb122af391ff8d59fb24958c793f632305b87f8ed"}, 1147 | {file = "apispec-4.0.0.tar.gz", hash = "sha256:360e28e5e84a4d7023b16de2b897327fe3da63ddc8e01f9165b9113b7fe1c48a"}, 1148 | ] 1149 | appdirs = [ 1150 | {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, 1151 | {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, 1152 | ] 1153 | argcomplete = [ 1154 | {file = "argcomplete-1.12.2-py2.py3-none-any.whl", hash = "sha256:17f01a9b9b9ece3e6b07058eae737ad6e10de8b4e149105f84614783913aba71"}, 1155 | {file = "argcomplete-1.12.2.tar.gz", hash = "sha256:de0e1282330940d52ea92a80fea2e4b9e0da1932aaa570f84d268939d1897b04"}, 1156 | ] 1157 | asgiref = [ 1158 | {file = "asgiref-3.3.1-py3-none-any.whl", hash = "sha256:5ee950735509d04eb673bd7f7120f8fa1c9e2df495394992c73234d526907e17"}, 1159 | {file = "asgiref-3.3.1.tar.gz", hash = "sha256:7162a3cb30ab0609f1a4c95938fd73e8604f63bdba516a7f7d64b83ff09478f0"}, 1160 | ] 1161 | attrs = [ 1162 | {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, 1163 | {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, 1164 | ] 1165 | babel = [ 1166 | {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, 1167 | {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, 1168 | ] 1169 | black = [ 1170 | {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, 1171 | {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, 1172 | ] 1173 | cached-property = [ 1174 | {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, 1175 | {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, 1176 | ] 1177 | certifi = [ 1178 | {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, 1179 | {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, 1180 | ] 1181 | chardet = [ 1182 | {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, 1183 | {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, 1184 | ] 1185 | click = [ 1186 | {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, 1187 | {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, 1188 | ] 1189 | colorama = [ 1190 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 1191 | {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, 1192 | ] 1193 | colorlog = [ 1194 | {file = "colorlog-4.0.2-py2.py3-none-any.whl", hash = "sha256:450f52ea2a2b6ebb308f034ea9a9b15cea51e65650593dca1da3eb792e4e4981"}, 1195 | {file = "colorlog-4.0.2.tar.gz", hash = "sha256:3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42"}, 1196 | ] 1197 | configparser = [ 1198 | {file = "configparser-3.5.3-py2-none-any.whl", hash = "sha256:561d6a2303a3e9afaafbaa9f459b2a16e5d49f5390954cd4e6ce1a4bfbd8f726"}, 1199 | {file = "configparser-3.5.3-py3-none-any.whl", hash = "sha256:18873eb33d111429143eef0ad334f76abdf9736d5da1219de513d74b0a559674"}, 1200 | {file = "configparser-3.5.3.tar.gz", hash = "sha256:adaba55d292e94fac7a1080de30ea776139ea48b65db869659e87357f10c55d2"}, 1201 | ] 1202 | croniter = [ 1203 | {file = "croniter-0.3.37-py2.py3-none-any.whl", hash = "sha256:8f573a889ca9379e08c336193435c57c02698c2dd22659cdbe04fee57426d79b"}, 1204 | {file = "croniter-0.3.37.tar.gz", hash = "sha256:12ced475dfc107bf7c6c1440af031f34be14cd97bbbfaf0f62221a9c11e86404"}, 1205 | ] 1206 | dill = [ 1207 | {file = "dill-0.3.3-py2.py3-none-any.whl", hash = "sha256:78370261be6ea49037ace8c17e0b7dd06d0393af6513cc23f9b222d9367ce389"}, 1208 | {file = "dill-0.3.3.zip", hash = "sha256:efb7f6cb65dba7087c1e111bb5390291ba3616741f96840bfc75792a1a9b5ded"}, 1209 | ] 1210 | django = [ 1211 | {file = "Django-3.1.5-py3-none-any.whl", hash = "sha256:efa2ab96b33b20c2182db93147a0c3cd7769d418926f9e9f140a60dca7c64ca9"}, 1212 | {file = "Django-3.1.5.tar.gz", hash = "sha256:2d78425ba74c7a1a74b196058b261b9733a8570782f4e2828974777ccca7edf7"}, 1213 | ] 1214 | docutils = [ 1215 | {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, 1216 | {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, 1217 | ] 1218 | flask = [ 1219 | {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, 1220 | {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, 1221 | ] 1222 | flask-admin = [ 1223 | {file = "Flask-Admin-1.5.3.tar.gz", hash = "sha256:ca0be6ec11a6913b73f656c65c444ae5be416c57c75638dd3199376ce6bc7422"}, 1224 | ] 1225 | flask-appbuilder = [ 1226 | {file = "Flask-AppBuilder-1.13.1.tar.gz", hash = "sha256:1eb2c364f121997ac4d4444b0699757420d3bd2a65c409589d5103043553a472"}, 1227 | ] 1228 | flask-babel = [ 1229 | {file = "Flask-Babel-0.12.2.tar.gz", hash = "sha256:316ad183e42003f3922957fa643d0a1e8e34a0f0301a88c3a8f605bc37ba5c86"}, 1230 | ] 1231 | flask-caching = [ 1232 | {file = "Flask-Caching-1.3.3.tar.gz", hash = "sha256:5af1759e5ae3424abec918537f0201a1476ae9442452bcb5c8787468a9de0f5a"}, 1233 | {file = "Flask_Caching-1.3.3-py2.py3-none-any.whl", hash = "sha256:21236d2b4567deb9fc95e474a604602097189e834629c24f4d62937abc963636"}, 1234 | ] 1235 | flask-jwt-extended = [ 1236 | {file = "Flask-JWT-Extended-3.24.1.tar.gz", hash = "sha256:0aa8ee6fa7eb3be9314e39dd199ac8e19389a95371f9d54e155c7aa635e319dd"}, 1237 | ] 1238 | flask-login = [ 1239 | {file = "Flask-Login-0.4.1.tar.gz", hash = "sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec"}, 1240 | ] 1241 | flask-openid = [ 1242 | {file = "Flask-OpenID-1.2.5.tar.gz", hash = "sha256:5a8ffe1c8c0ad1cc1f5030e1223ea27f8861ee0215a2a58a528cc61379e5ccab"}, 1243 | ] 1244 | flask-sqlalchemy = [ 1245 | {file = "Flask-SQLAlchemy-2.4.4.tar.gz", hash = "sha256:bfc7150eaf809b1c283879302f04c42791136060c6eeb12c0c6674fb1291fae5"}, 1246 | {file = "Flask_SQLAlchemy-2.4.4-py2.py3-none-any.whl", hash = "sha256:05b31d2034dd3f2a685cbbae4cfc4ed906b2a733cff7964ada450fd5e462b84e"}, 1247 | ] 1248 | flask-swagger = [ 1249 | {file = "flask-swagger-0.2.13.tar.gz", hash = "sha256:42420efbed1aad86f7ca6bb869df550e09591e1d540ebd3040c197906c0f0be6"}, 1250 | ] 1251 | flask-wtf = [ 1252 | {file = "Flask-WTF-0.14.3.tar.gz", hash = "sha256:d417e3a0008b5ba583da1763e4db0f55a1269d9dd91dcc3eb3c026d3c5dbd720"}, 1253 | {file = "Flask_WTF-0.14.3-py2.py3-none-any.whl", hash = "sha256:57b3faf6fe5d6168bda0c36b0df1d05770f8e205e18332d0376ddb954d17aef2"}, 1254 | ] 1255 | funcsigs = [ 1256 | {file = "funcsigs-1.0.0-py2.py3-none-any.whl", hash = "sha256:1c916dfbb4aad250f2a40e937dcff206da165fa29fa909ee1ea02243f7386019"}, 1257 | {file = "funcsigs-1.0.0.tar.gz", hash = "sha256:2310f9d4a77c284e920ec572dc2525366a107b08d216ff8dbb891d95b6a77563"}, 1258 | ] 1259 | future = [ 1260 | {file = "future-0.16.0.tar.gz", hash = "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"}, 1261 | ] 1262 | graphviz = [ 1263 | {file = "graphviz-0.16-py2.py3-none-any.whl", hash = "sha256:3cad5517c961090dfc679df6402a57de62d97703e2880a1a46147bb0dc1639eb"}, 1264 | {file = "graphviz-0.16.zip", hash = "sha256:d2d25af1c199cad567ce4806f0449cb74eb30cf451fd7597251e1da099ac6e57"}, 1265 | ] 1266 | gunicorn = [ 1267 | {file = "gunicorn-19.10.0-py2.py3-none-any.whl", hash = "sha256:c3930fe8de6778ab5ea716cab432ae6335fa9f03b3f2c3e02529214c476f4bcb"}, 1268 | {file = "gunicorn-19.10.0.tar.gz", hash = "sha256:f9de24e358b841567063629cd0a656b26792a41e23a24d0dcb40224fc3940081"}, 1269 | ] 1270 | idna = [ 1271 | {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, 1272 | {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, 1273 | ] 1274 | importlib-metadata = [ 1275 | {file = "importlib_metadata-3.4.0-py3-none-any.whl", hash = "sha256:ace61d5fc652dc280e7b6b4ff732a9c2d40db2c0f92bc6cb74e07b73d53a1771"}, 1276 | {file = "importlib_metadata-3.4.0.tar.gz", hash = "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"}, 1277 | ] 1278 | iso8601 = [ 1279 | {file = "iso8601-0.1.13-py2.py3-none-any.whl", hash = "sha256:694be0743e9f1535ea873bfc7bd6fb62380c62b75822761859428073a17fd39c"}, 1280 | {file = "iso8601-0.1.13-py3-none-any.whl", hash = "sha256:6f02f01dd13320a7f280e58516dc8d1950dfaf77527cc365a398cd9de4d3c692"}, 1281 | {file = "iso8601-0.1.13.tar.gz", hash = "sha256:f7dec22af52025d4526be94cc1303c7d8f5379b746a3f54a8c8446384392eeb1"}, 1282 | ] 1283 | itsdangerous = [ 1284 | {file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"}, 1285 | {file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"}, 1286 | ] 1287 | jinja2 = [ 1288 | {file = "Jinja2-2.10.3-py2.py3-none-any.whl", hash = "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f"}, 1289 | {file = "Jinja2-2.10.3.tar.gz", hash = "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"}, 1290 | ] 1291 | json-merge-patch = [ 1292 | {file = "json-merge-patch-0.2.tar.gz", hash = "sha256:09898b6d427c08754e2a97c709cf2dfd7e28bd10c5683a538914975eab778d39"}, 1293 | ] 1294 | jsonschema = [ 1295 | {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, 1296 | {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, 1297 | ] 1298 | lazy-object-proxy = [ 1299 | {file = "lazy-object-proxy-1.5.2.tar.gz", hash = "sha256:5944a9b95e97de1980c65f03b79b356f30a43de48682b8bdd90aa5089f0ec1f4"}, 1300 | {file = "lazy_object_proxy-1.5.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e960e8be509e8d6d618300a6c189555c24efde63e85acaf0b14b2cd1ac743315"}, 1301 | {file = "lazy_object_proxy-1.5.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:522b7c94b524389f4a4094c4bf04c2b02228454ddd17c1a9b2801fac1d754871"}, 1302 | {file = "lazy_object_proxy-1.5.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:3782931963dc89e0e9a0ae4348b44762e868ea280e4f8c233b537852a8996ab9"}, 1303 | {file = "lazy_object_proxy-1.5.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:429c4d1862f3fc37cd56304d880f2eae5bd0da83bdef889f3bd66458aac49128"}, 1304 | {file = "lazy_object_proxy-1.5.2-cp35-cp35m-win32.whl", hash = "sha256:cd1bdace1a8762534e9a36c073cd54e97d517a17d69a17985961265be6d22847"}, 1305 | {file = "lazy_object_proxy-1.5.2-cp35-cp35m-win_amd64.whl", hash = "sha256:ddbdcd10eb999d7ab292677f588b658372aadb9a52790f82484a37127a390108"}, 1306 | {file = "lazy_object_proxy-1.5.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:ecb5dd5990cec6e7f5c9c1124a37cb2c710c6d69b0c1a5c4aa4b35eba0ada068"}, 1307 | {file = "lazy_object_proxy-1.5.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b6577f15d5516d7d209c1a8cde23062c0f10625f19e8dc9fb59268859778d7d7"}, 1308 | {file = "lazy_object_proxy-1.5.2-cp36-cp36m-win32.whl", hash = "sha256:c8fe2d6ff0ff583784039d0255ea7da076efd08507f2be6f68583b0da32e3afb"}, 1309 | {file = "lazy_object_proxy-1.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:fa5b2dee0e231fa4ad117be114251bdfe6afe39213bd629d43deb117b6a6c40a"}, 1310 | {file = "lazy_object_proxy-1.5.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1d33d6f789697f401b75ce08e73b1de567b947740f768376631079290118ad39"}, 1311 | {file = "lazy_object_proxy-1.5.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:57fb5c5504ddd45ed420b5b6461a78f58cbb0c1b0cbd9cd5a43ad30a4a3ee4d0"}, 1312 | {file = "lazy_object_proxy-1.5.2-cp37-cp37m-win32.whl", hash = "sha256:e7273c64bccfd9310e9601b8f4511d84730239516bada26a0c9846c9697617ef"}, 1313 | {file = "lazy_object_proxy-1.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f4e5e68b7af950ed7fdb594b3f19a0014a3ace0fedb86acb896e140ffb24302"}, 1314 | {file = "lazy_object_proxy-1.5.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cadfa2c2cf54d35d13dc8d231253b7985b97d629ab9ca6e7d672c35539d38163"}, 1315 | {file = "lazy_object_proxy-1.5.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e7428977763150b4cf83255625a80a23dfdc94d43be7791ce90799d446b4e26f"}, 1316 | {file = "lazy_object_proxy-1.5.2-cp38-cp38-win32.whl", hash = "sha256:2f2de8f8ac0be3e40d17730e0600619d35c78c13a099ea91ef7fb4ad944ce694"}, 1317 | {file = "lazy_object_proxy-1.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:38c3865bd220bd983fcaa9aa11462619e84a71233bafd9c880f7b1cb753ca7fa"}, 1318 | {file = "lazy_object_proxy-1.5.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:8a44e9901c0555f95ac401377032f6e6af66d8fc1fbfad77a7a8b1a826e0b93c"}, 1319 | {file = "lazy_object_proxy-1.5.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fa7fb7973c622b9e725bee1db569d2c2ee64d2f9a089201c5e8185d482c7352d"}, 1320 | {file = "lazy_object_proxy-1.5.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:71a1ef23f22fa8437974b2d60fedb947c99a957ad625f83f43fd3de70f77f458"}, 1321 | {file = "lazy_object_proxy-1.5.2-cp39-cp39-win32.whl", hash = "sha256:ef3f5e288aa57b73b034ce9c1f1ac753d968f9069cd0742d1d69c698a0167166"}, 1322 | {file = "lazy_object_proxy-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:37d9c34b96cca6787fe014aeb651217944a967a5b165e2cacb6b858d2997ab84"}, 1323 | ] 1324 | lockfile = [ 1325 | {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"}, 1326 | {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"}, 1327 | ] 1328 | mako = [ 1329 | {file = "Mako-1.1.4.tar.gz", hash = "sha256:17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab"}, 1330 | ] 1331 | markdown = [ 1332 | {file = "Markdown-2.6.11-py2.py3-none-any.whl", hash = "sha256:9ba587db9daee7ec761cfc656272be6aabe2ed300fece21208e4aab2e457bc8f"}, 1333 | {file = "Markdown-2.6.11.tar.gz", hash = "sha256:a856869c7ff079ad84a3e19cd87a64998350c2b94e9e08e44270faef33400f81"}, 1334 | ] 1335 | markupsafe = [ 1336 | {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, 1337 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, 1338 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, 1339 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, 1340 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, 1341 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, 1342 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, 1343 | {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, 1344 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, 1345 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, 1346 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, 1347 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, 1348 | {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, 1349 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, 1350 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, 1351 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, 1352 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, 1353 | {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, 1354 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, 1355 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, 1356 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, 1357 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, 1358 | {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, 1359 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, 1360 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, 1361 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, 1362 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, 1363 | {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, 1364 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, 1365 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, 1366 | {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, 1367 | {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, 1368 | {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, 1369 | ] 1370 | marshmallow = [ 1371 | {file = "marshmallow-2.19.5-py2.py3-none-any.whl", hash = "sha256:a4d99922116a76e5abd8f997ec0519086e24814b7e1e1344bebe2a312ba50235"}, 1372 | {file = "marshmallow-2.19.5.tar.gz", hash = "sha256:9cedfc5b6f568d57e8a2cf3d293fbd81b05e5ef557854008d03e25660a39ccfd"}, 1373 | ] 1374 | marshmallow-enum = [ 1375 | {file = "marshmallow-enum-1.5.1.tar.gz", hash = "sha256:38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58"}, 1376 | {file = "marshmallow_enum-1.5.1-py2.py3-none-any.whl", hash = "sha256:57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072"}, 1377 | ] 1378 | marshmallow-sqlalchemy = [ 1379 | {file = "marshmallow-sqlalchemy-0.18.0.tar.gz", hash = "sha256:6698354f882919fb232e881bb6f99bdf8a86a76a709105bff826551f53c0b6c5"}, 1380 | {file = "marshmallow_sqlalchemy-0.18.0-py2.py3-none-any.whl", hash = "sha256:85dd2a4a0a4daba4e09d8db26d7d459f1a8eecbc11a3335d1910ce5c67543a59"}, 1381 | ] 1382 | natsort = [ 1383 | {file = "natsort-7.1.1-py3-none-any.whl", hash = "sha256:d0f4fc06ca163fa4a5ef638d9bf111c67f65eedcc7920f98dec08e489045b67e"}, 1384 | {file = "natsort-7.1.1.tar.gz", hash = "sha256:00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403"}, 1385 | ] 1386 | numpy = [ 1387 | {file = "numpy-1.19.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc6bd4fd593cb261332568485e20a0712883cf631f6f5e8e86a52caa8b2b50ff"}, 1388 | {file = "numpy-1.19.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:aeb9ed923be74e659984e321f609b9ba54a48354bfd168d21a2b072ed1e833ea"}, 1389 | {file = "numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8b5e972b43c8fc27d56550b4120fe6257fdc15f9301914380b27f74856299fea"}, 1390 | {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:43d4c81d5ffdff6bae58d66a3cd7f54a7acd9a0e7b18d97abb255defc09e3140"}, 1391 | {file = "numpy-1.19.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a4646724fba402aa7504cd48b4b50e783296b5e10a524c7a6da62e4a8ac9698d"}, 1392 | {file = "numpy-1.19.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:2e55195bc1c6b705bfd8ad6f288b38b11b1af32f3c8289d6c50d47f950c12e76"}, 1393 | {file = "numpy-1.19.5-cp36-cp36m-win32.whl", hash = "sha256:39b70c19ec771805081578cc936bbe95336798b7edf4732ed102e7a43ec5c07a"}, 1394 | {file = "numpy-1.19.5-cp36-cp36m-win_amd64.whl", hash = "sha256:dbd18bcf4889b720ba13a27ec2f2aac1981bd41203b3a3b27ba7a33f88ae4827"}, 1395 | {file = "numpy-1.19.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:603aa0706be710eea8884af807b1b3bc9fb2e49b9f4da439e76000f3b3c6ff0f"}, 1396 | {file = "numpy-1.19.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cae865b1cae1ec2663d8ea56ef6ff185bad091a5e33ebbadd98de2cfa3fa668f"}, 1397 | {file = "numpy-1.19.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:36674959eed6957e61f11c912f71e78857a8d0604171dfd9ce9ad5cbf41c511c"}, 1398 | {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:06fab248a088e439402141ea04f0fffb203723148f6ee791e9c75b3e9e82f080"}, 1399 | {file = "numpy-1.19.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6149a185cece5ee78d1d196938b2a8f9d09f5a5ebfbba66969302a778d5ddd1d"}, 1400 | {file = "numpy-1.19.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:50a4a0ad0111cc1b71fa32dedd05fa239f7fb5a43a40663269bb5dc7877cfd28"}, 1401 | {file = "numpy-1.19.5-cp37-cp37m-win32.whl", hash = "sha256:d051ec1c64b85ecc69531e1137bb9751c6830772ee5c1c426dbcfe98ef5788d7"}, 1402 | {file = "numpy-1.19.5-cp37-cp37m-win_amd64.whl", hash = "sha256:a12ff4c8ddfee61f90a1633a4c4afd3f7bcb32b11c52026c92a12e1325922d0d"}, 1403 | {file = "numpy-1.19.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cf2402002d3d9f91c8b01e66fbb436a4ed01c6498fffed0e4c7566da1d40ee1e"}, 1404 | {file = "numpy-1.19.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1ded4fce9cfaaf24e7a0ab51b7a87be9038ea1ace7f34b841fe3b6894c721d1c"}, 1405 | {file = "numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:012426a41bc9ab63bb158635aecccc7610e3eff5d31d1eb43bc099debc979d94"}, 1406 | {file = "numpy-1.19.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:759e4095edc3c1b3ac031f34d9459fa781777a93ccc633a472a5468587a190ff"}, 1407 | {file = "numpy-1.19.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9d17f2be3b427fbb2bce61e596cf555d6f8a56c222bd2ca148baeeb5e5c783c"}, 1408 | {file = "numpy-1.19.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:99abf4f353c3d1a0c7a5f27699482c987cf663b1eac20db59b8c7b061eabd7fc"}, 1409 | {file = "numpy-1.19.5-cp38-cp38-win32.whl", hash = "sha256:384ec0463d1c2671170901994aeb6dce126de0a95ccc3976c43b0038a37329c2"}, 1410 | {file = "numpy-1.19.5-cp38-cp38-win_amd64.whl", hash = "sha256:811daee36a58dc79cf3d8bdd4a490e4277d0e4b7d103a001a4e73ddb48e7e6aa"}, 1411 | {file = "numpy-1.19.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c843b3f50d1ab7361ca4f0b3639bf691569493a56808a0b0c54a051d260b7dbd"}, 1412 | {file = "numpy-1.19.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d6631f2e867676b13026e2846180e2c13c1e11289d67da08d71cacb2cd93d4aa"}, 1413 | {file = "numpy-1.19.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7fb43004bce0ca31d8f13a6eb5e943fa73371381e53f7074ed21a4cb786c32f8"}, 1414 | {file = "numpy-1.19.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2ea52bd92ab9f768cc64a4c3ef8f4b2580a17af0a5436f6126b08efbd1838371"}, 1415 | {file = "numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:400580cbd3cff6ffa6293df2278c75aef2d58d8d93d3c5614cd67981dae68ceb"}, 1416 | {file = "numpy-1.19.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:df609c82f18c5b9f6cb97271f03315ff0dbe481a2a02e56aeb1b1a985ce38e60"}, 1417 | {file = "numpy-1.19.5-cp39-cp39-win32.whl", hash = "sha256:ab83f24d5c52d60dbc8cd0528759532736b56db58adaa7b5f1f76ad551416a1e"}, 1418 | {file = "numpy-1.19.5-cp39-cp39-win_amd64.whl", hash = "sha256:0eef32ca3132a48e43f6a0f5a82cb508f22ce5a3d6f67a8329c81c8e226d3f6e"}, 1419 | {file = "numpy-1.19.5-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:a0d53e51a6cb6f0d9082decb7a4cb6dfb33055308c4c44f53103c073f649af73"}, 1420 | {file = "numpy-1.19.5.zip", hash = "sha256:a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4"}, 1421 | ] 1422 | ordereddict = [ 1423 | {file = "ordereddict-1.1.tar.gz", hash = "sha256:1c35b4ac206cef2d24816c89f89cf289dd3d38cf7c449bb3fab7bf6d43f01b1f"}, 1424 | ] 1425 | pandas = [ 1426 | {file = "pandas-0.25.3-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:df8864824b1fe488cf778c3650ee59c3a0d8f42e53707de167ba6b4f7d35f133"}, 1427 | {file = "pandas-0.25.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7458c48e3d15b8aaa7d575be60e1e4dd70348efcd9376656b72fecd55c59a4c3"}, 1428 | {file = "pandas-0.25.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:61741f5aeb252f39c3031d11405305b6d10ce663c53bc3112705d7ad66c013d0"}, 1429 | {file = "pandas-0.25.3-cp35-cp35m-win32.whl", hash = "sha256:adc3d3a3f9e59a38d923e90e20c4922fc62d1e5a03d083440468c6d8f3f1ae0a"}, 1430 | {file = "pandas-0.25.3-cp35-cp35m-win_amd64.whl", hash = "sha256:975c461accd14e89d71772e89108a050fa824c0b87a67d34cedf245f6681fc17"}, 1431 | {file = "pandas-0.25.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ee50c2142cdcf41995655d499a157d0a812fce55c97d9aad13bc1eef837ed36c"}, 1432 | {file = "pandas-0.25.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:4545467a637e0e1393f7d05d61dace89689ad6d6f66f267f86fff737b702cce9"}, 1433 | {file = "pandas-0.25.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bbe3eb765a0b1e578833d243e2814b60c825b7fdbf4cdfe8e8aae8a08ed56ecf"}, 1434 | {file = "pandas-0.25.3-cp36-cp36m-win32.whl", hash = "sha256:8153705d6545fd9eb6dd2bc79301bff08825d2e2f716d5dced48daafc2d0b81f"}, 1435 | {file = "pandas-0.25.3-cp36-cp36m-win_amd64.whl", hash = "sha256:26382aab9c119735908d94d2c5c08020a4a0a82969b7e5eefb92f902b3b30ad7"}, 1436 | {file = "pandas-0.25.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:00dff3a8e337f5ed7ad295d98a31821d3d0fe7792da82d78d7fd79b89c03ea9d"}, 1437 | {file = "pandas-0.25.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e45055c30a608076e31a9fcd780a956ed3b1fa20db61561b8d88b79259f526f7"}, 1438 | {file = "pandas-0.25.3-cp37-cp37m-win32.whl", hash = "sha256:255920e63850dc512ce356233081098554d641ba99c3767dde9e9f35630f994b"}, 1439 | {file = "pandas-0.25.3-cp37-cp37m-win_amd64.whl", hash = "sha256:22361b1597c8c2ffd697aa9bf85423afa9e1fcfa6b1ea821054a244d5f24d75e"}, 1440 | {file = "pandas-0.25.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9962957a27bfb70ab64103d0a7b42fa59c642fb4ed4cb75d0227b7bb9228535d"}, 1441 | {file = "pandas-0.25.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:78bf638993219311377ce9836b3dc05f627a666d0dbc8cec37c0ff3c9ada673b"}, 1442 | {file = "pandas-0.25.3-cp38-cp38-win32.whl", hash = "sha256:6a3ac2c87e4e32a969921d1428525f09462770c349147aa8e9ab95f88c71ec71"}, 1443 | {file = "pandas-0.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:33970f4cacdd9a0ddb8f21e151bfb9f178afb7c36eb7c25b9094c02876f385c2"}, 1444 | {file = "pandas-0.25.3.tar.gz", hash = "sha256:52da74df8a9c9a103af0a72c9d5fdc8e0183a90884278db7f386b5692a2220a4"}, 1445 | ] 1446 | pathspec = [ 1447 | {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, 1448 | {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, 1449 | ] 1450 | pendulum = [ 1451 | {file = "pendulum-1.4.4-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:501670f3b1d581395ec4094aff7c13dca6b699d1810cf15c446433b9e736eb4a"}, 1452 | {file = "pendulum-1.4.4-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:b9a7ef02ad6255292f35218c595f8be35e0ca3c7ac19e633ff2de96480f26ab3"}, 1453 | {file = "pendulum-1.4.4-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3d8b280a903fb25bdba258203bbcd0533c5c04a65878f6e0700931dedd2bae72"}, 1454 | {file = "pendulum-1.4.4-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f30fb1149e4f67b3aaa9eae874dca7bbf49788ac121d702486f5b9fe549e7920"}, 1455 | {file = "pendulum-1.4.4-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:4c945ed6a3b0afab8c2f1b1e3e26bb23ad0a9be6f201604111a8217cea78e7ab"}, 1456 | {file = "pendulum-1.4.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:253983de6d64a01909c2524e4ab27febd0d3987d001ea6ab93a7b945fdc0e6c6"}, 1457 | {file = "pendulum-1.4.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:76ee830b4b57a3f8244a228505bf9c55285cc92f1a200c8578b0ca54f8185861"}, 1458 | {file = "pendulum-1.4.4.tar.gz", hash = "sha256:601e52cb0425e94b1784b6613a9085e0066ae1fa1915d18771884b67e93cac5c"}, 1459 | ] 1460 | prison = [ 1461 | {file = "prison-0.1.0-.tar.gz", hash = "sha256:3d6dc4ae23624d2a5109d5c3a392c12980c47dbd020134f2cd11acc207c261c5"}, 1462 | {file = "prison-0.1.0-py2.py3-none-any.whl", hash = "sha256:d976aa167912d384ef7d0545d9d70cc8f82d04aa3826770e3984525d3137e840"}, 1463 | ] 1464 | psutil = [ 1465 | {file = "psutil-5.8.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0066a82f7b1b37d334e68697faba68e5ad5e858279fd6351c8ca6024e8d6ba64"}, 1466 | {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ae6f386d8d297177fd288be6e8d1afc05966878704dad9847719650e44fc49c"}, 1467 | {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:12d844996d6c2b1d3881cfa6fa201fd635971869a9da945cf6756105af73d2df"}, 1468 | {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:02b8292609b1f7fcb34173b25e48d0da8667bc85f81d7476584d889c6e0f2131"}, 1469 | {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6ffe81843131ee0ffa02c317186ed1e759a145267d54fdef1bc4ea5f5931ab60"}, 1470 | {file = "psutil-5.8.0-cp27-none-win32.whl", hash = "sha256:ea313bb02e5e25224e518e4352af4bf5e062755160f77e4b1767dd5ccb65f876"}, 1471 | {file = "psutil-5.8.0-cp27-none-win_amd64.whl", hash = "sha256:5da29e394bdedd9144c7331192e20c1f79283fb03b06e6abd3a8ae45ffecee65"}, 1472 | {file = "psutil-5.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:74fb2557d1430fff18ff0d72613c5ca30c45cdbfcddd6a5773e9fc1fe9364be8"}, 1473 | {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:74f2d0be88db96ada78756cb3a3e1b107ce8ab79f65aa885f76d7664e56928f6"}, 1474 | {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:99de3e8739258b3c3e8669cb9757c9a861b2a25ad0955f8e53ac662d66de61ac"}, 1475 | {file = "psutil-5.8.0-cp36-cp36m-win32.whl", hash = "sha256:36b3b6c9e2a34b7d7fbae330a85bf72c30b1c827a4366a07443fc4b6270449e2"}, 1476 | {file = "psutil-5.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:52de075468cd394ac98c66f9ca33b2f54ae1d9bff1ef6b67a212ee8f639ec06d"}, 1477 | {file = "psutil-5.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c6a5fd10ce6b6344e616cf01cc5b849fa8103fbb5ba507b6b2dee4c11e84c935"}, 1478 | {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:61f05864b42fedc0771d6d8e49c35f07efd209ade09a5afe6a5059e7bb7bf83d"}, 1479 | {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:0dd4465a039d343925cdc29023bb6960ccf4e74a65ad53e768403746a9207023"}, 1480 | {file = "psutil-5.8.0-cp37-cp37m-win32.whl", hash = "sha256:1bff0d07e76114ec24ee32e7f7f8d0c4b0514b3fae93e3d2aaafd65d22502394"}, 1481 | {file = "psutil-5.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:fcc01e900c1d7bee2a37e5d6e4f9194760a93597c97fee89c4ae51701de03563"}, 1482 | {file = "psutil-5.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6223d07a1ae93f86451d0198a0c361032c4c93ebd4bf6d25e2fb3edfad9571ef"}, 1483 | {file = "psutil-5.8.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d225cd8319aa1d3c85bf195c4e07d17d3cd68636b8fc97e6cf198f782f99af28"}, 1484 | {file = "psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:28ff7c95293ae74bf1ca1a79e8805fcde005c18a122ca983abf676ea3466362b"}, 1485 | {file = "psutil-5.8.0-cp38-cp38-win32.whl", hash = "sha256:ce8b867423291cb65cfc6d9c4955ee9bfc1e21fe03bb50e177f2b957f1c2469d"}, 1486 | {file = "psutil-5.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:90f31c34d25b1b3ed6c40cdd34ff122b1887a825297c017e4cbd6796dd8b672d"}, 1487 | {file = "psutil-5.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6323d5d845c2785efb20aded4726636546b26d3b577aded22492908f7c1bdda7"}, 1488 | {file = "psutil-5.8.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:245b5509968ac0bd179287d91210cd3f37add77dad385ef238b275bad35fa1c4"}, 1489 | {file = "psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:90d4091c2d30ddd0a03e0b97e6a33a48628469b99585e2ad6bf21f17423b112b"}, 1490 | {file = "psutil-5.8.0-cp39-cp39-win32.whl", hash = "sha256:ea372bcc129394485824ae3e3ddabe67dc0b118d262c568b4d2602a7070afdb0"}, 1491 | {file = "psutil-5.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:f4634b033faf0d968bb9220dd1c793b897ab7f1189956e1aa9eae752527127d3"}, 1492 | {file = "psutil-5.8.0.tar.gz", hash = "sha256:0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6"}, 1493 | ] 1494 | pygments = [ 1495 | {file = "Pygments-2.7.4-py3-none-any.whl", hash = "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435"}, 1496 | {file = "Pygments-2.7.4.tar.gz", hash = "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"}, 1497 | ] 1498 | pyjwt = [ 1499 | {file = "PyJWT-2.0.1-py3-none-any.whl", hash = "sha256:b70b15f89dc69b993d8a8d32c299032d5355c82f9b5b7e851d1a6d706dffe847"}, 1500 | {file = "PyJWT-2.0.1.tar.gz", hash = "sha256:a5c70a06e1f33d81ef25eecd50d50bd30e34de1ca8b2b9fa3fe0daaabcf69bf7"}, 1501 | ] 1502 | pyrsistent = [ 1503 | {file = "pyrsistent-0.17.3.tar.gz", hash = "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"}, 1504 | ] 1505 | python-daemon = [ 1506 | {file = "python-daemon-2.1.2.tar.gz", hash = "sha256:261c859be5c12ae7d4286dc6951e87e9e1a70a882a8b41fd926efc1ec4214f73"}, 1507 | {file = "python_daemon-2.1.2-py2.py3-none-any.whl", hash = "sha256:53da55aec3bb67b576e13a8091a2181f99b395c2eec32a5a0d91d347a5c420a7"}, 1508 | ] 1509 | python-dateutil = [ 1510 | {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, 1511 | {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, 1512 | ] 1513 | python-editor = [ 1514 | {file = "python-editor-1.0.4.tar.gz", hash = "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b"}, 1515 | {file = "python_editor-1.0.4-py2-none-any.whl", hash = "sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8"}, 1516 | {file = "python_editor-1.0.4-py2.7.egg", hash = "sha256:ea87e17f6ec459e780e4221f295411462e0d0810858e055fc514684350a2f522"}, 1517 | {file = "python_editor-1.0.4-py3-none-any.whl", hash = "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d"}, 1518 | {file = "python_editor-1.0.4-py3.5.egg", hash = "sha256:c3da2053dbab6b29c94e43c486ff67206eafbe7eb52dbec7390b5e2fb05aac77"}, 1519 | ] 1520 | python-openid = [ 1521 | {file = "python-openid-2.2.5.tar.gz", hash = "sha256:92c51c3ecec846cbec4aeff11f9ff47303d4a63f93b0e6ac0ec02a091fed70ef"}, 1522 | {file = "python-openid-2.2.5.zip", hash = "sha256:c2d133e47e0a7705c9272eef00d7a09c174f5bf17a127fed8e2c6499556cc782"}, 1523 | ] 1524 | pytz = [ 1525 | {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, 1526 | {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, 1527 | ] 1528 | pytzdata = [ 1529 | {file = "pytzdata-2020.1-py2.py3-none-any.whl", hash = "sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f"}, 1530 | {file = "pytzdata-2020.1.tar.gz", hash = "sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540"}, 1531 | ] 1532 | pyyaml = [ 1533 | {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, 1534 | {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, 1535 | {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, 1536 | {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, 1537 | {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, 1538 | {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, 1539 | {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, 1540 | {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, 1541 | {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, 1542 | {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, 1543 | {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, 1544 | {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, 1545 | {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, 1546 | {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, 1547 | {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, 1548 | {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, 1549 | {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, 1550 | {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, 1551 | {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, 1552 | {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, 1553 | {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, 1554 | ] 1555 | regex = [ 1556 | {file = "regex-2020.11.13-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8b882a78c320478b12ff024e81dc7d43c1462aa4a3341c754ee65d857a521f85"}, 1557 | {file = "regex-2020.11.13-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a63f1a07932c9686d2d416fb295ec2c01ab246e89b4d58e5fa468089cab44b70"}, 1558 | {file = "regex-2020.11.13-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:6e4b08c6f8daca7d8f07c8d24e4331ae7953333dbd09c648ed6ebd24db5a10ee"}, 1559 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:bba349276b126947b014e50ab3316c027cac1495992f10e5682dc677b3dfa0c5"}, 1560 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:56e01daca75eae420bce184edd8bb341c8eebb19dd3bce7266332258f9fb9dd7"}, 1561 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:6a8ce43923c518c24a2579fda49f093f1397dad5d18346211e46f134fc624e31"}, 1562 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab79fcb02b930de09c76d024d279686ec5d532eb814fd0ed1e0051eb8bd2daa"}, 1563 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:9801c4c1d9ae6a70aeb2128e5b4b68c45d4f0af0d1535500884d644fa9b768c6"}, 1564 | {file = "regex-2020.11.13-cp36-cp36m-win32.whl", hash = "sha256:49cae022fa13f09be91b2c880e58e14b6da5d10639ed45ca69b85faf039f7a4e"}, 1565 | {file = "regex-2020.11.13-cp36-cp36m-win_amd64.whl", hash = "sha256:749078d1eb89484db5f34b4012092ad14b327944ee7f1c4f74d6279a6e4d1884"}, 1566 | {file = "regex-2020.11.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b2f4007bff007c96a173e24dcda236e5e83bde4358a557f9ccf5e014439eae4b"}, 1567 | {file = "regex-2020.11.13-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:38c8fd190db64f513fe4e1baa59fed086ae71fa45083b6936b52d34df8f86a88"}, 1568 | {file = "regex-2020.11.13-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5862975b45d451b6db51c2e654990c1820523a5b07100fc6903e9c86575202a0"}, 1569 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:262c6825b309e6485ec2493ffc7e62a13cf13fb2a8b6d212f72bd53ad34118f1"}, 1570 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bafb01b4688833e099d79e7efd23f99172f501a15c44f21ea2118681473fdba0"}, 1571 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:e32f5f3d1b1c663af7f9c4c1e72e6ffe9a78c03a31e149259f531e0fed826512"}, 1572 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3bddc701bdd1efa0d5264d2649588cbfda549b2899dc8d50417e47a82e1387ba"}, 1573 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:02951b7dacb123d8ea6da44fe45ddd084aa6777d4b2454fa0da61d569c6fa538"}, 1574 | {file = "regex-2020.11.13-cp37-cp37m-win32.whl", hash = "sha256:0d08e71e70c0237883d0bef12cad5145b84c3705e9c6a588b2a9c7080e5af2a4"}, 1575 | {file = "regex-2020.11.13-cp37-cp37m-win_amd64.whl", hash = "sha256:1fa7ee9c2a0e30405e21031d07d7ba8617bc590d391adfc2b7f1e8b99f46f444"}, 1576 | {file = "regex-2020.11.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:baf378ba6151f6e272824b86a774326f692bc2ef4cc5ce8d5bc76e38c813a55f"}, 1577 | {file = "regex-2020.11.13-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e3faaf10a0d1e8e23a9b51d1900b72e1635c2d5b0e1bea1c18022486a8e2e52d"}, 1578 | {file = "regex-2020.11.13-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2a11a3e90bd9901d70a5b31d7dd85114755a581a5da3fc996abfefa48aee78af"}, 1579 | {file = "regex-2020.11.13-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1ebb090a426db66dd80df8ca85adc4abfcbad8a7c2e9a5ec7513ede522e0a8f"}, 1580 | {file = "regex-2020.11.13-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2b1a5ddae3677d89b686e5c625fc5547c6e492bd755b520de5332773a8af06b"}, 1581 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2c99e97d388cd0a8d30f7c514d67887d8021541b875baf09791a3baad48bb4f8"}, 1582 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:c084582d4215593f2f1d28b65d2a2f3aceff8342aa85afd7be23a9cad74a0de5"}, 1583 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a3d748383762e56337c39ab35c6ed4deb88df5326f97a38946ddd19028ecce6b"}, 1584 | {file = "regex-2020.11.13-cp38-cp38-win32.whl", hash = "sha256:7913bd25f4ab274ba37bc97ad0e21c31004224ccb02765ad984eef43e04acc6c"}, 1585 | {file = "regex-2020.11.13-cp38-cp38-win_amd64.whl", hash = "sha256:6c54ce4b5d61a7129bad5c5dc279e222afd00e721bf92f9ef09e4fae28755683"}, 1586 | {file = "regex-2020.11.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1862a9d9194fae76a7aaf0150d5f2a8ec1da89e8b55890b1786b8f88a0f619dc"}, 1587 | {file = "regex-2020.11.13-cp39-cp39-manylinux1_i686.whl", hash = "sha256:4902e6aa086cbb224241adbc2f06235927d5cdacffb2425c73e6570e8d862364"}, 1588 | {file = "regex-2020.11.13-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7a25fcbeae08f96a754b45bdc050e1fb94b95cab046bf56b016c25e9ab127b3e"}, 1589 | {file = "regex-2020.11.13-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:d2d8ce12b7c12c87e41123997ebaf1a5767a5be3ec545f64675388970f415e2e"}, 1590 | {file = "regex-2020.11.13-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f7d29a6fc4760300f86ae329e3b6ca28ea9c20823df123a2ea8693e967b29917"}, 1591 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:717881211f46de3ab130b58ec0908267961fadc06e44f974466d1887f865bd5b"}, 1592 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:3128e30d83f2e70b0bed9b2a34e92707d0877e460b402faca908c6667092ada9"}, 1593 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:8f6a2229e8ad946e36815f2a03386bb8353d4bde368fdf8ca5f0cb97264d3b5c"}, 1594 | {file = "regex-2020.11.13-cp39-cp39-win32.whl", hash = "sha256:f8f295db00ef5f8bae530fc39af0b40486ca6068733fb860b42115052206466f"}, 1595 | {file = "regex-2020.11.13-cp39-cp39-win_amd64.whl", hash = "sha256:a15f64ae3a027b64496a71ab1f722355e570c3fac5ba2801cafce846bf5af01d"}, 1596 | {file = "regex-2020.11.13.tar.gz", hash = "sha256:83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562"}, 1597 | ] 1598 | requests = [ 1599 | {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, 1600 | {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, 1601 | ] 1602 | setproctitle = [ 1603 | {file = "setproctitle-1.2.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9106bcbacae534b6f82955b176723f1b2ca6514518aab44dffec05a583f8dca8"}, 1604 | {file = "setproctitle-1.2.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:30bc7a769a4451639a0adcbc97bdf7a6e9ac0ef3ddad8d63eb1e338edb3ebeda"}, 1605 | {file = "setproctitle-1.2.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e8ef655eab26e83ec105ce79036bb87e5f2bf8ba2d6f48afdd9595ef7647fcf4"}, 1606 | {file = "setproctitle-1.2.2-cp36-cp36m-win32.whl", hash = "sha256:0df728d0d350e6b1ad8436cc7add052faebca6f4d03257182d427d86d4422065"}, 1607 | {file = "setproctitle-1.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:5260e8700c5793d48e79c5e607e8e552e795b698491a4b9bb9111eb74366a450"}, 1608 | {file = "setproctitle-1.2.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ba1fb32e7267330bd9f72e69e076777a877f1cb9be5beac5e62d1279e305f37f"}, 1609 | {file = "setproctitle-1.2.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e696c93d93c23f377ccd2d72e38908d3dbfc90e45561602b805f53f2627d42ea"}, 1610 | {file = "setproctitle-1.2.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:fbf914179dc4540ee6bfd8228b4cc1f1f6fb12dad66b72b5c9b955b222403220"}, 1611 | {file = "setproctitle-1.2.2-cp37-cp37m-win32.whl", hash = "sha256:28b884e1cb9a53974e15838864283f9bad774b5c7db98c9609416bd123cb9fd1"}, 1612 | {file = "setproctitle-1.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:a11d329f33221443317e2aeaee9442f22fcae25be3aa4fb8489e4f7b1f65cdd2"}, 1613 | {file = "setproctitle-1.2.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e13a5c1d9c369cb11cdfc4b75be432b83eb3205c95a69006008ffd4366f87b9e"}, 1614 | {file = "setproctitle-1.2.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:c611f65bc9de5391a1514de556f71101e6531bb0715d240efd3e9732626d5c9e"}, 1615 | {file = "setproctitle-1.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:bc4393576ed3ac87ddac7d1bd0faaa2fab24840a025cc5f3c21d14cf0c9c8a12"}, 1616 | {file = "setproctitle-1.2.2-cp38-cp38-win32.whl", hash = "sha256:17598f38be9ef499d74f2380bf76b558be72e87da75d66b153350e586649171b"}, 1617 | {file = "setproctitle-1.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:0d160d46c8f3567e0aa27b26b1f36e03122e3de475aacacc14a92b8fe45b648a"}, 1618 | {file = "setproctitle-1.2.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:077943272d0490b3f43d17379432d5e49c263f608fdf4cf624b419db762ca72b"}, 1619 | {file = "setproctitle-1.2.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:970798d948f0c90a3eb0f8750f08cb215b89dcbee1b55ffb353ad62d9361daeb"}, 1620 | {file = "setproctitle-1.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:3f6136966c81daaf5b4b010613fe33240a045a4036132ef040b623e35772d998"}, 1621 | {file = "setproctitle-1.2.2-cp39-cp39-win32.whl", hash = "sha256:249526a06f16d493a2cb632abc1b1fdfaaa05776339a50dd9f27c941f6ff1383"}, 1622 | {file = "setproctitle-1.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:4fc5bebd34f451dc87d2772ae6093adea1ea1dc29afc24641b250140decd23bb"}, 1623 | {file = "setproctitle-1.2.2.tar.gz", hash = "sha256:7dfb472c8852403d34007e01d6e3c68c57eb66433fb8a5c77b13b89a160d97df"}, 1624 | ] 1625 | six = [ 1626 | {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, 1627 | {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, 1628 | ] 1629 | sqlalchemy = [ 1630 | {file = "SQLAlchemy-1.3.22-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:61628715931f4962e0cdb2a7c87ff39eea320d2aa96bd471a3c293d146f90394"}, 1631 | {file = "SQLAlchemy-1.3.22-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:81d8d099a49f83111cce55ec03cc87eef45eec0d90f9842b4fc674f860b857b0"}, 1632 | {file = "SQLAlchemy-1.3.22-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:d055ff750fcab69ca4e57b656d9c6ad33682e9b8d564f2fbe667ab95c63591b0"}, 1633 | {file = "SQLAlchemy-1.3.22-cp27-cp27m-win32.whl", hash = "sha256:9bf572e4f5aa23f88dd902f10bb103cb5979022a38eec684bfa6d61851173fec"}, 1634 | {file = "SQLAlchemy-1.3.22-cp27-cp27m-win_amd64.whl", hash = "sha256:7d4b8de6bb0bc736161cb0bbd95366b11b3eb24dd6b814a143d8375e75af9990"}, 1635 | {file = "SQLAlchemy-1.3.22-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4a84c7c7658dd22a33dab2e2aa2d17c18cb004a42388246f2e87cb4085ef2811"}, 1636 | {file = "SQLAlchemy-1.3.22-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:f1e88b30da8163215eab643962ae9d9252e47b4ea53404f2c4f10f24e70ddc62"}, 1637 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:f115150cc4361dd46153302a640c7fa1804ac207f9cc356228248e351a8b4676"}, 1638 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6aaa13ee40c4552d5f3a59f543f0db6e31712cc4009ec7385407be4627259d41"}, 1639 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:3ab5b44a07b8c562c6dcb7433c6a6c6e03266d19d64f87b3333eda34e3b9936b"}, 1640 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:426ece890153ccc52cc5151a1a0ed540a5a7825414139bb4c95a868d8da54a52"}, 1641 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-win32.whl", hash = "sha256:bd4b1af45fd322dcd1fb2a9195b4f93f570d1a5902a842e3e6051385fac88f9c"}, 1642 | {file = "SQLAlchemy-1.3.22-cp35-cp35m-win_amd64.whl", hash = "sha256:62285607a5264d1f91590abd874d6a498e229d5840669bd7d9f654cfaa599bd0"}, 1643 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:314f5042c0b047438e19401d5f29757a511cfc2f0c40d28047ca0e4c95eabb5b"}, 1644 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:62fb881ba51dbacba9af9b779211cf9acff3442d4f2993142015b22b3cd1f92a"}, 1645 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bde677047305fe76c7ee3e4492b545e0018918e44141cc154fe39e124e433991"}, 1646 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:0c6406a78a714a540d980a680b86654feadb81c8d0eecb59f3d6c554a4c69f19"}, 1647 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-win32.whl", hash = "sha256:95bde07d19c146d608bccb9b16e144ec8f139bcfe7fd72331858698a71c9b4f5"}, 1648 | {file = "SQLAlchemy-1.3.22-cp36-cp36m-win_amd64.whl", hash = "sha256:888d5b4b5aeed0d3449de93ea80173653e939e916cc95fe8527079e50235c1d2"}, 1649 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:d53f59744b01f1440a1b0973ed2c3a7de204135c593299ee997828aad5191693"}, 1650 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:70121f0ae48b25ef3e56e477b88cd0b0af0e1f3a53b5554071aa6a93ef378a03"}, 1651 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:54da615e5b92c339e339fe8536cce99fe823b6ed505d4ea344852aefa1c205fb"}, 1652 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:68428818cf80c60dc04aa0f38da20ad39b28aba4d4d199f949e7d6e04444ea86"}, 1653 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-win32.whl", hash = "sha256:17610d573e698bf395afbbff946544fbce7c5f4ee77b5bcb1f821b36345fae7a"}, 1654 | {file = "SQLAlchemy-1.3.22-cp37-cp37m-win_amd64.whl", hash = "sha256:216ba5b4299c95ed179b58f298bda885a476b16288ab7243e89f29f6aeced7e0"}, 1655 | {file = "SQLAlchemy-1.3.22-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0c72b90988be749e04eff0342dcc98c18a14461eb4b2ad59d611b57b31120f90"}, 1656 | {file = "SQLAlchemy-1.3.22-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:491fe48adc07d13e020a8b07ef82eefc227003a046809c121bea81d3dbf1832d"}, 1657 | {file = "SQLAlchemy-1.3.22-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f8191fef303025879e6c3548ecd8a95aafc0728c764ab72ec51a0bdf0c91a341"}, 1658 | {file = "SQLAlchemy-1.3.22-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:108580808803c7732f34798eb4a329d45b04c562ed83ee90f09f6a184a42b766"}, 1659 | {file = "SQLAlchemy-1.3.22-cp38-cp38-win32.whl", hash = "sha256:bab5a1e15b9466a25c96cda19139f3beb3e669794373b9ce28c4cf158c6e841d"}, 1660 | {file = "SQLAlchemy-1.3.22-cp38-cp38-win_amd64.whl", hash = "sha256:318b5b727e00662e5fc4b4cd2bf58a5116d7c1b4dd56ffaa7d68f43458a8d1ed"}, 1661 | {file = "SQLAlchemy-1.3.22-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:1418f5e71d6081aa1095a1d6b567a562d2761996710bdce9b6e6ba20a03d0864"}, 1662 | {file = "SQLAlchemy-1.3.22-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:5a7f224cdb7233182cec2a45d4c633951268d6a9bcedac37abbf79dd07012aea"}, 1663 | {file = "SQLAlchemy-1.3.22-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:715b34578cc740b743361f7c3e5f584b04b0f1344f45afc4e87fbac4802eb0a0"}, 1664 | {file = "SQLAlchemy-1.3.22-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:2ff132a379838b1abf83c065be54cef32b47c987aedd06b82fc76476c85225eb"}, 1665 | {file = "SQLAlchemy-1.3.22-cp39-cp39-win32.whl", hash = "sha256:c389d7cc2b821853fb018c85457da3e7941db64f4387720a329bc7ff06a27963"}, 1666 | {file = "SQLAlchemy-1.3.22-cp39-cp39-win_amd64.whl", hash = "sha256:04f995fcbf54e46cddeb4f75ce9dfc17075d6ae04ac23b2bacb44b3bc6f6bf11"}, 1667 | {file = "SQLAlchemy-1.3.22.tar.gz", hash = "sha256:758fc8c4d6c0336e617f9f6919f9daea3ab6bb9b07005eda9a1a682e24a6cacc"}, 1668 | ] 1669 | sqlparse = [ 1670 | {file = "sqlparse-0.4.1-py3-none-any.whl", hash = "sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0"}, 1671 | {file = "sqlparse-0.4.1.tar.gz", hash = "sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"}, 1672 | ] 1673 | tabulate = [ 1674 | {file = "tabulate-0.8.7-py3-none-any.whl", hash = "sha256:ac64cb76d53b1231d364babcd72abbb16855adac7de6665122f97b593f1eb2ba"}, 1675 | {file = "tabulate-0.8.7.tar.gz", hash = "sha256:db2723a20d04bcda8522165c73eea7c300eda74e0ce852d9022e0159d7895007"}, 1676 | ] 1677 | tenacity = [ 1678 | {file = "tenacity-4.12.0-py2.py3-none-any.whl", hash = "sha256:0dff43d3faa411ebb8506b6adc174ef725df18322eef8437aabf4f63e478ec11"}, 1679 | {file = "tenacity-4.12.0.tar.gz", hash = "sha256:dcd7646fe731b21b73870ead85a965a4202abeaf56e0588e6a8b38375110098f"}, 1680 | ] 1681 | termcolor = [ 1682 | {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, 1683 | ] 1684 | text-unidecode = [ 1685 | {file = "text-unidecode-1.2.tar.gz", hash = "sha256:5a1375bb2ba7968740508ae38d92e1f889a0832913cb1c447d5e2046061a396d"}, 1686 | {file = "text_unidecode-1.2-py2.py3-none-any.whl", hash = "sha256:801e38bd550b943563660a91de8d4b6fa5df60a542be9093f7abf819f86050cc"}, 1687 | ] 1688 | thrift = [ 1689 | {file = "thrift-0.13.0.tar.gz", hash = "sha256:9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89"}, 1690 | ] 1691 | toml = [ 1692 | {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, 1693 | {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, 1694 | ] 1695 | typed-ast = [ 1696 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70"}, 1697 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487"}, 1698 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412"}, 1699 | {file = "typed_ast-1.4.2-cp35-cp35m-win32.whl", hash = "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400"}, 1700 | {file = "typed_ast-1.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606"}, 1701 | {file = "typed_ast-1.4.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64"}, 1702 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07"}, 1703 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc"}, 1704 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a"}, 1705 | {file = "typed_ast-1.4.2-cp36-cp36m-win32.whl", hash = "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151"}, 1706 | {file = "typed_ast-1.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3"}, 1707 | {file = "typed_ast-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41"}, 1708 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f"}, 1709 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581"}, 1710 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37"}, 1711 | {file = "typed_ast-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd"}, 1712 | {file = "typed_ast-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496"}, 1713 | {file = "typed_ast-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc"}, 1714 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"}, 1715 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea"}, 1716 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787"}, 1717 | {file = "typed_ast-1.4.2-cp38-cp38-win32.whl", hash = "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2"}, 1718 | {file = "typed_ast-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937"}, 1719 | {file = "typed_ast-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1"}, 1720 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6"}, 1721 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166"}, 1722 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d"}, 1723 | {file = "typed_ast-1.4.2-cp39-cp39-win32.whl", hash = "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b"}, 1724 | {file = "typed_ast-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440"}, 1725 | {file = "typed_ast-1.4.2.tar.gz", hash = "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a"}, 1726 | ] 1727 | typing-extensions = [ 1728 | {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, 1729 | {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, 1730 | {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, 1731 | ] 1732 | tzlocal = [ 1733 | {file = "tzlocal-1.5.1.tar.gz", hash = "sha256:4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e"}, 1734 | ] 1735 | unicodecsv = [ 1736 | {file = "unicodecsv-0.14.1.tar.gz", hash = "sha256:018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc"}, 1737 | ] 1738 | urllib3 = [ 1739 | {file = "urllib3-1.22-py2.py3-none-any.whl", hash = "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b"}, 1740 | {file = "urllib3-1.22.tar.gz", hash = "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"}, 1741 | ] 1742 | werkzeug = [ 1743 | {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, 1744 | {file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"}, 1745 | ] 1746 | wtforms = [ 1747 | {file = "WTForms-2.3.3-py2.py3-none-any.whl", hash = "sha256:7b504fc724d0d1d4d5d5c114e778ec88c37ea53144683e084215eed5155ada4c"}, 1748 | {file = "WTForms-2.3.3.tar.gz", hash = "sha256:81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c"}, 1749 | ] 1750 | zipp = [ 1751 | {file = "zipp-3.4.0-py3-none-any.whl", hash = "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108"}, 1752 | {file = "zipp-3.4.0.tar.gz", hash = "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb"}, 1753 | ] 1754 | "zope.deprecation" = [ 1755 | {file = "zope.deprecation-4.4.0-py2.py3-none-any.whl", hash = "sha256:f1480b74995958b24ce37b0ef04d3663d2683e5d6debc96726eff18acf4ea113"}, 1756 | {file = "zope.deprecation-4.4.0.tar.gz", hash = "sha256:0d453338f04bacf91bbfba545d8bcdf529aa829e67b705eac8c1a7fdce66e2df"}, 1757 | ] 1758 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "airflow-django" 3 | version = "0.7.0" 4 | description = "A kit for using Django features, like its ORM, in Airflow DAGs." 5 | authors = ["Paris Kasidiaris "] 6 | license = "MIT" 7 | 8 | [tool.poetry.dependencies] 9 | python = ">=3.6" 10 | apache-airflow = ">=1.10" 11 | django = ">=2.0" 12 | 13 | [tool.poetry.dev-dependencies] 14 | black = "^19.10b0" 15 | 16 | [build-system] 17 | requires = ["poetry>=0.12"] 18 | build-backend = "poetry.masonry.api" 19 | --------------------------------------------------------------------------------