| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| [metadata] |
| name = apache-airflow |
| summary = Programmatically author, schedule and monitor data pipelines |
| author = Apache Software Foundation |
| author_email = dev@airflow.apache.org |
| url = https://airflow.apache.org/ |
| long_description = file: README.md |
| long_description_content_type = text/markdown |
| license = Apache License 2.0 |
| license_files = |
| LICENSE |
| NOTICE |
| # Start of licenses generated automatically |
| licenses/LICENSE-bootstrap.txt |
| licenses/LICENSE-bootstrap3-typeahead.txt |
| licenses/LICENSE-d3-shape.txt |
| licenses/LICENSE-d3-tip.txt |
| licenses/LICENSE-d3js.txt |
| licenses/LICENSE-dagre-d3.txt |
| licenses/LICENSE-datatables.txt |
| licenses/LICENSE-elasticmock.txt |
| licenses/LICENSE-eonasdan-bootstrap-datetimepicker.txt |
| licenses/LICENSE-flask-kerberos.txt |
| licenses/LICENSE-hue.txt |
| licenses/LICENSE-jqclock.txt |
| licenses/LICENSE-jquery.txt |
| licenses/LICENSE-moment-strftime.txt |
| licenses/LICENSE-moment.txt |
| licenses/LICENSE-normalize.txt |
| # End of licences generated automatically |
| licenses/LICENSES-ui.txt |
| classifiers = |
| Development Status :: 5 - Production/Stable |
| Environment :: Console |
| Environment :: Web Environment |
| Intended Audience :: Developers |
| Intended Audience :: System Administrators |
| License :: OSI Approved :: Apache Software License |
| Programming Language :: Python :: 3.7 |
| Programming Language :: Python :: 3.8 |
| Programming Language :: Python :: 3.9 |
| Programming Language :: Python :: 3.10 |
| Topic :: System :: Monitoring |
| Framework :: Apache Airflow |
| project_urls = |
| Documentation=https://airflow.apache.org/docs/ |
| Bug Tracker=https://github.com/apache/airflow/issues |
| Source Code=https://github.com/apache/airflow |
| Slack Chat=https://s.apache.org/airflow-slack |
| Twitter=https://twitter.com/ApacheAirflow |
| YouTube=https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/ |
| |
| [options] |
| zip_safe = False |
| include_package_data = True |
| python_requires = ~=3.7 |
| packages = find: |
| setup_requires = |
| gitpython |
| wheel |
| ##################################################################################################### |
| # IMPORTANT NOTE!!!!!!!!!!!!!!! |
| # IF you are removing dependencies from this list, please make sure that you also increase |
| # DEPENDENCIES_EPOCH_NUMBER in the Dockerfile.ci |
| ##################################################################################################### |
| install_requires = |
| # Alembic is important to handle our migrations in predictable and performant way. It is developed |
| # together with SQLAlchemy. Our experience with Alembic is that it very stable in minor version |
| alembic>=1.5.1, <2.0 |
| argcomplete>=1.10 |
| # We limit the version of attrs to work with the old version of cattrs |
| attrs>=20.0,<21.0 |
| blinker |
| cached_property>=1.5.0;python_version<="3.7" |
| # Cattrs upgrades were known to break lineage https://github.com/apache/airflow/issues/16172 |
| # TODO: Cattrs is now at 3.8 version so we should attempt to upgrade cattrs soon. |
| cattrs~=1.1, !=1.7.* |
| # Colorlog 6.x merges TTYColoredFormatter into ColoredFormatter, breaking backwards compatibility with 4.x |
| # Update CustomTTYColoredFormatter to remove |
| colorlog>=4.0.2, <5.0 |
| connexion[swagger-ui,flask]>=2.10.0 |
| cron-descriptor>=1.2.24 |
| croniter>=0.3.17 |
| cryptography>=0.9.3 |
| deprecated>=1.2.13 |
| dill>=0.2.2 |
| # Flask and all related libraries are limited to below 2.0.0 because we expect it to introduce |
| # Serious breaking changes. Flask 2.0 has been introduced in May 2021 and 2.0.2 version is available |
| # now (Feb 2022): TODO: we should attempt to migrate to Flask 2 and all below flask libraries soon. |
| flask>=1.1.0, <2.0 |
| # We are tightly coupled with FAB version because we vendored in part of FAB code related to security manager |
| # This is done as part of preparation to removing FAB as dependency, but we are not ready for it yet |
| # Every time we update FAB version here, please make sure that you review the classes and models in |
| # `airflow/www/fab_security` with their upstream counterparts. In particular, make sure any breaking changes, |
| # for example any new methods, are accounted for. |
| flask-appbuilder==3.4.5 |
| flask-caching>=1.5.0, <2.0.0 |
| flask-login>=0.3, <0.5 |
| # Strict upper-bound on the latest release of flask-session, |
| # as any schema changes will require a migration. |
| flask-session>=0.3.1, <=0.4.0 |
| flask-wtf>=0.14.3, <0.15 |
| graphviz>=0.12 |
| gunicorn>=20.1.0 |
| httpx |
| importlib_metadata>=1.7;python_version<"3.9" |
| importlib_resources>=5.2;python_version<"3.9" |
| # Logging is broken with itsdangerous > 2 - likely due to changed serializing support |
| # https://itsdangerous.palletsprojects.com/en/2.0.x/changes/#version-2-0-0 |
| # itsdangerous 2 has been released in May 2020 |
| # TODO: we should attempt to upgrade to line 2 of itsdangerous |
| itsdangerous>=1.1.0, <2.0 |
| # Jinja2 3.1 will remove the 'autoescape' and 'with' extensions, which would |
| # break Flask 1.x, so we limit this for future compatibility. Remove this |
| # when bumping Flask to >=2. |
| jinja2>=2.10.1,<3.1 |
| # Because connexion upper-bound is 5.0.0 and we depend on connexion, |
| # we pin to the same upper-bound as connexion. |
| jsonschema>=3.2.0, <5.0 |
| lazy-object-proxy |
| lockfile>=0.12.2 |
| markdown>=3.0 |
| # Markupsafe 2.1.0 breaks with error: import name 'soft_unicode' from 'markupsafe'. |
| # This should be removed when either this issue is closed: |
| # https://github.com/pallets/markupsafe/issues/284 |
| # or when we will be able to upgrade JINJA to newer version (currently limited due to Flask and |
| # Flask Application Builder) |
| markupsafe>=1.1.1,<2.1.0 |
| marshmallow-oneofschema>=2.0.1 |
| packaging>=14.0 |
| pathspec~=0.9.0 |
| pendulum>=2.0 |
| pluggy>=1.0 |
| psutil>=4.2.0 |
| pygments>=2.0.1 |
| # python daemon crashes with 'socket operation on non-socket' for python 3.8+ in version < 2.2.4 |
| # https://pagure.io/python-daemon/issue/34 |
| python-daemon>=2.2.4 |
| python-dateutil>=2.3 |
| python-nvd3>=0.15.0 |
| python-slugify>=5.0 |
| rich>=12.4.4 |
| setproctitle>=1.1.8 |
| # SQL Alchemy 1.4.10 introduces a bug where for PyODBC driver UTCDateTime fields get wrongly converted |
| # as string and fail to be converted back to datetime. It was supposed to be fixed in |
| # https://github.com/sqlalchemy/sqlalchemy/issues/6366 (released in 1.4.12) but apparently our case |
| # is different. Opened https://github.com/sqlalchemy/sqlalchemy/issues/7660 to track it |
| sqlalchemy>=1.4,<1.4.10 |
| sqlalchemy_jsonfield>=1.0 |
| tabulate>=0.7.5 |
| tenacity>=6.2.0 |
| termcolor>=1.1.0 |
| typing-extensions>=3.7.4 |
| unicodecsv>=0.14.1 |
| # Werkzeug is known to cause breaking changes and it is very closely tied with FlaskAppBuilder and other |
| # Flask dependencies and the limit to 1.* line should be reviewed when we upgrade Flask and remove |
| # FlaskAppBuilder. |
| werkzeug~=1.0, >=1.0.1 |
| |
| [options.packages.find] |
| include = |
| airflow* |
| |
| [options.package_data] |
| airflow= |
| py.typed |
| alembic.ini |
| git_version |
| customized_form_field_behaviours.schema.json |
| provider_info.schema.json |
| |
| airflow.api_connexion.openapi=*.yaml |
| airflow.serialization=*.json |
| airflow.utils= |
| context.pyi |
| |
| [options.entry_points] |
| console_scripts= |
| airflow=airflow.__main__:main |
| |
| [bdist_wheel] |
| python-tag=py3 |
| |
| |
| [files] |
| packages = airflow |
| |
| [easy_install] |
| |
| [mypy] |
| ignore_missing_imports = True |
| no_implicit_optional = True |
| warn_redundant_casts = True |
| warn_unused_ignores = False |
| plugins = |
| airflow.mypy.plugin.decorators |
| pretty = True |
| show_error_codes = True |
| |
| [mypy-airflow.migrations.*] |
| ignore_errors = True |
| |
| # Let's assume all google.cloud packages have no implicit optional |
| # Most of them don't but even if they do, it does not matter |
| [mypy-google.cloud.*] |
| no_implicit_optional = False |
| |
| [isort] |
| line_length=110 |
| combine_as_imports = true |
| default_section = THIRDPARTY |
| known_first_party=airflow,airflow_breeze,tests |
| # Need to be consistent with the exclude config defined in pre-commit-config.yaml |
| skip=build,.tox,venv |
| profile = black |