Skip to content

Instantly share code, notes, and snippets.

@potiuk
Created January 25, 2022 21:03
Show Gist options
  • Save potiuk/7d8a6d0a23fe6c1aaae134614e3e3b9d to your computer and use it in GitHub Desktop.
Save potiuk/7d8a6d0a23fe6c1aaae134614e3e3b9d to your computer and use it in GitHub Desktop.
ff --git a/setup.cfg b/setup.cfg
index 65c22d2280..b83ef9be02 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -30,7 +30,6 @@ license_files =
# Start of licenses generated automatically
licenses/LICENSE-bootstrap.txt
licenses/LICENSE-bootstrap3-typeahead.txt
- licenses/LICENSE-connexion.txt
licenses/LICENSE-d3-shape.txt
licenses/LICENSE-d3-tip.txt
licenses/LICENSE-d3js.txt
@@ -46,6 +45,7 @@ license_files =
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
@@ -81,18 +81,18 @@ setup_requires =
#####################################################################################################
install_requires =
alembic>=1.5.1, <2.0
- argcomplete~=1.10
+ argcomplete>=1.10, <3.0
attrs>=20.0, <21.0
blinker
cached_property~=1.5;python_version<="3.7"
# cattrs >= 1.1.0 dropped support for Python 3.6
cattrs>=1.0, <1.1.0;python_version<="3.6"
- # cattrs >= 1.7.0 break lineage - see https://github.com/apache/airflow/issues/16172
- cattrs~=1.1, <1.7.0;python_version>"3.6"
+ cattrs~=1.1, !=1.7.*;python_version>"3.6"
# Required by vendored-in connexion
clickclick>=1.2
- colorlog>=4.0.2, <6.0
- croniter>=0.3.17, <1.1
+ colorlog>=4.0.2, <7.0
+ connexion[swagger-ui,flask]>=2.10.0
+ croniter>=0.3.17
cryptography>=0.9.3
dataclasses;python_version<"3.7"
dill>=0.2.2, <0.4
@@ -103,37 +103,34 @@ install_requires =
# https://github.com/readthedocs/sphinx_rtd_theme/issues/1115
docutils<0.17
flask>=1.1.0, <2.0
- flask-appbuilder>=3.3.2, <4.0.0
+ flask-appbuilder>=3.3.4, <4.0.0
flask-caching>=1.5.0, <2.0.0
flask-login>=0.3, <0.5
flask-wtf>=0.14.3, <0.15
graphviz>=0.12
gunicorn>=20.1.0
- # We need to limit httpx until https://github.com/apache/airflow/issues/20088 is fixed
- httpx<0.20.0
+ httpx
importlib_metadata>=1.7;python_version<"3.9"
importlib_resources~=5.2;python_version<"3.9"
- # Required by vendored-in connexion
- inflection>=0.3.1
iso8601>=0.1.12
# Logging is broken with itsdangerous > 2
itsdangerous>=1.1.0, <2.0
- jinja2>=2.10.1,<4
+ # 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
jsonschema~=3.0
lazy-object-proxy
lockfile>=0.12.2
markdown>=2.5.2, <4.0
markupsafe>=1.1.1
marshmallow-oneofschema>=2.0.1
- # Required by vendored-in connexion
- openapi-spec-validator>=0.2.4
packaging>=14.0
pendulum~=2.0
pep562~=1.0;python_version<"3.7"
psutil>=4.2.0, <6.0.0
pygments>=2.0.1, <3.0
- # Required for flask-jwt-extended and msal
- pyjwt<2
+ pyjwt<3
# 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
@@ -145,14 +142,10 @@ install_requires =
# (pip installs the right version).
# More info: https://github.com/apache/airflow/issues/13149#issuecomment-748705193
python3-openid~=3.2
- # Required by vendored-in connexion
- pyyaml>=5.1
rich>=9.2.0
setproctitle>=1.1.8, <2
sqlalchemy>=1.3.18
sqlalchemy_jsonfield~=1.0
- # Required by vendored-in connexion
- swagger-ui-bundle>=0.0.2
tabulate>=0.7.5, <0.9
tenacity>=6.2.0
termcolor>=1.1.0
@@ -206,7 +199,7 @@ ignore_errors = True
line_length=110
combine_as_imports = true
default_section = THIRDPARTY
-known_first_party=airflow,tests
+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
diff --git a/setup.py b/setup.py
index 90a2037efb..5557921bd1 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,6 @@ import subprocess
import sys
import unittest
from copy import deepcopy
-from distutils import log
from os.path import dirname, relpath
from textwrap import wrap
from typing import Dict, List
@@ -32,6 +31,10 @@ from setuptools import Command, Distribution, find_namespace_packages, setup
from setuptools.command.develop import develop as develop_orig
from setuptools.command.install import install as install_orig
+# Setuptools patches this import to point to a vendored copy instead of the
+# stdlib, which is deprecated in Python 3.10 and will be removed in 3.12.
+from distutils import log # isort: skip
+
# Controls whether providers are installed from packages or directly from sources
# It is turned on by default in case of development environments such as Breeze
# And it is particularly useful when you add a new provider and there is no
@@ -41,7 +44,7 @@ PY39 = sys.version_info >= (3, 9)
logger = logging.getLogger(__name__)
-version = '2.2.3'
+version = '2.2.4'
my_dir = dirname(__file__)
@@ -176,6 +179,11 @@ def write_version(filename: str = os.path.join(*[my_dir, "airflow", "git_version
file.write(text)
+# We limit Pandas to <1.4 because Pandas 1.4 requires SQLAlchemy 1.4 which
+# We should remove the limits as soon as Flask App Builder releases version 3.4.4
+# Release candidate is there: https://pypi.org/project/Flask-AppBuilder/3.4.4rc1/
+pandas_requirement = 'pandas>=0.17.1, <1.4'
+
# 'Start dependencies group' and 'Start dependencies group' are mark for ./scripts/ci/check_order_setup.py
# If you change this mark you should also change ./scripts/ci/check_order_setup.py
# Start dependencies group
@@ -184,8 +192,11 @@ alibaba = [
]
amazon = [
'boto3>=1.15.0,<1.19.0',
- 'watchtower~=1.0.6',
+ 'watchtower~=2.0.1',
'jsonpath_ng>=1.5.3',
+ 'redshift_connector~=2.0.888',
+ 'sqlalchemy_redshift~=0.8.6',
+ pandas_requirement,
]
apache_beam = [
'apache-beam>=2.20.0',
@@ -219,7 +230,8 @@ cassandra = [
'cassandra-driver>=3.13.0,<4',
]
celery = [
- 'celery~=5.1,>=5.1.2',
+ 'celery~=5.1,>=5.1.2;python_version<"3.7"',
+ 'celery>=5.2.3;python_version>="3.7"',
'flower~=1.0.0',
]
cgroups = [
@@ -245,20 +257,19 @@ deprecated_api = [
]
doc = [
'click>=7.1,<9',
- # Sphinx is limited to < 3.5.0 because of https://github.com/sphinx-doc/sphinx/issues/8880
- 'sphinx>=2.1.2, <3.5.0',
+ 'sphinx>=4.0.0, <5.0.0',
'sphinx-airflow-theme',
'sphinx-argparse>=0.1.13',
- 'sphinx-autoapi==1.0.0',
+ 'sphinx-autoapi~=1.8.0',
'sphinx-copybutton',
'sphinx-jinja~=1.1',
'sphinx-rtd-theme>=0.1.6',
'sphinxcontrib-httpdomain>=1.7.0',
'sphinxcontrib-redoc>=1.6.0',
- 'sphinxcontrib-spelling==7.2.1',
+ 'sphinxcontrib-spelling~=7.3',
]
docker = [
- 'docker',
+ 'docker>=5.0.3',
]
drill = ['sqlalchemy-drill>=1.1.0', 'sqlparse>=0.4.1']
druid = [
@@ -269,9 +280,7 @@ elasticsearch = [
'elasticsearch-dbapi',
'elasticsearch-dsl>=5.0.0',
]
-exasol = [
- 'pyexasol>=0.5.1,<1.0.0',
-]
+exasol = ['pyexasol>=0.5.1,<1.0.0', pandas_requirement]
facebook = [
'facebook-business>=6.0.2',
]
@@ -300,7 +309,8 @@ google = [
'google-cloud-build>=3.0.0,<4.0.0',
'google-cloud-container>=0.1.1,<2.0.0',
'google-cloud-datacatalog>=3.0.0,<4.0.0',
- 'google-cloud-dataproc>=2.2.0,<2.6.0',
+ 'google-cloud-dataproc>=3.1.0,<4.0.0',
+ 'google-cloud-dataproc-metastore>=1.2.0,<2.0.0',
'google-cloud-dlp>=0.11.0,<2.0.0',
'google-cloud-kms>=2.0.0,<3.0.0',
'google-cloud-language>=1.1.1,<2.0.0',
@@ -328,6 +338,7 @@ google = [
# pandas-gbq 0.15.0 release broke google provider's bigquery import
# _check_google_client_version (airflow/providers/google/cloud/hooks/bigquery.py:49)
'pandas-gbq<0.15.0',
+ pandas_requirement,
]
grpc = [
'google-auth>=1.0.0, <3.0.0',
@@ -339,11 +350,13 @@ hashicorp = [
]
hdfs = [
'snakebite-py3',
+ 'hdfs[avro,dataframe,kerberos]>=2.0.4',
]
hive = [
'hmsclient>=0.1.0',
'pyhive[hive]>=0.6.0;python_version<"3.9"',
'thrift>=0.9.2',
+ pandas_requirement,
]
http = [
# The 2.26.0 release of requests got rid of the chardet LGPL mandatory dependency, allowing us to
@@ -353,7 +366,10 @@ http = [
http_provider = [
'apache-airflow-providers-http',
]
-influxdb = ['pandas>=0.17.1, <2.0', 'influxdb-client>=1.19.0']
+influxdb = [
+ 'influxdb-client>=1.19.0',
+ pandas_requirement,
+]
jdbc = [
'jaydebeapi>=1.1.1',
]
@@ -380,7 +396,8 @@ ldap = [
leveldb = ['plyvel']
mongo = [
'dnspython>=1.13.0,<3.0.0',
- 'pymongo>=3.6.0',
+ # pymongo 4.0.0 removes connection option `ssl_cert_reqs` which is used in providers-mongo/2.2.0
+ 'pymongo>=3.6.0,<4.0.0',
]
mssql = [
'pymssql~=2.1,>=2.1.5',
@@ -400,7 +417,7 @@ pagerduty = [
'pdpyras>=4.1.2,<5',
]
pandas = [
- 'pandas>=0.17.1, <2.0',
+ pandas_requirement,
]
papermill = [
'papermill[all]>=1.2.1',
@@ -421,7 +438,10 @@ plexus = [
postgres = [
'psycopg2-binary>=2.7.4',
]
-presto = ['presto-python-client>=0.7.0,<0.8']
+presto = [
+ 'presto-python-client>=0.7.0,<0.8',
+ pandas_requirement,
+]
psrp = [
'pypsrp~=0.5',
]
@@ -434,10 +454,7 @@ rabbitmq = [
redis = [
'redis~=3.2',
]
-salesforce = [
- 'simple-salesforce>=1.0.0',
- 'tableauserverclient',
-]
+salesforce = ['simple-salesforce>=1.0.0', 'tableauserverclient', pandas_requirement]
samba = [
'smbprotocol>=1.5.0',
]
@@ -456,7 +473,9 @@ slack = [
'slack_sdk>=3.0.0,<4.0.0',
]
snowflake = [
- 'snowflake-connector-python>=2.4.1',
+ # Snowflake connector 2.7.2 requires pyarrow >=6.0.0 but apache-beam requires < 6.0.0
+ # We should remove the limitation when apache-beam upgrades pyarrow
+ 'snowflake-connector-python>=2.4.1,<2.7.2',
# The snowflake-alchemy 1.2.5 introduces a hard dependency on sqlalchemy>=1.4.0, but they didn't define
# this requirements in setup.py, so pip cannot figure out the correct set of dependencies.
# See: https://github.com/snowflakedb/snowflake-sqlalchemy/issues/234
@@ -479,7 +498,10 @@ tableau = [
telegram = [
'python-telegram-bot~=13.0',
]
-trino = ['trino>=0.301.0']
+trino = [
+ 'trino>=0.301.0',
+ pandas_requirement,
+]
vertica = [
'vertica-python>=0.5.1',
]
@@ -493,7 +515,7 @@ winrm = [
'pywinrm~=0.4',
]
yandex = [
- 'yandexcloud>=0.97.0',
+ 'yandexcloud>=0.122.0',
]
zendesk = [
'zdesk',
@@ -519,7 +541,7 @@ devel_only = [
'jira',
'jsondiff',
'mongomock',
- 'moto~=2.2, >=2.2.7',
+ 'moto~=2.2, >=2.2.12',
'mypy==0.770',
'parameterized',
'paramiko',
@@ -540,6 +562,8 @@ devel_only = [
'qds-sdk>=1.9.6',
'pytest-httpx',
'requests_mock',
+ 'semver',
+ 'twine',
'wheel',
'yamllint',
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment