apache-airflow-providers-common-compat 1.10.1__tar.gz → 1.12.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/NOTICE +1 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/PKG-INFO +7 -7
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/README.rst +3 -3
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/changelog.rst +43 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/index.rst +3 -3
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/provider.yaml +3 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/pyproject.toml +4 -4
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/__init__.py +1 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/check.py +1 -1
- apache_airflow_providers_common_compat-1.12.0rc1/src/airflow/providers/common/compat/module_loading/__init__.py +49 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/check.py +1 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/sdk.py +31 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/version_compat.py +2 -5
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/test_check.py +1 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/test_check.py +1 -1
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/.pre-commit-config.yaml +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/LICENSE +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/_compat_utils.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/assets/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/connection/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/get_provider_info.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/lineage/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/lineage/entities.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/lineage/hook.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/notifier/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/facet.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/utils/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/utils/spark.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/utils/sql.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/openlineage/utils/utils.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/security/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/security/permissions.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/sqlalchemy/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/sqlalchemy/orm.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/standard/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/standard/operators.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/standard/triggers.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/src/airflow/providers/common/compat/standard/utils.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/connection/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/connection/test_connection.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/lineage/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/lineage/test_hook.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/test_facet.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/utils/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/utils/test_spark.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/utils/test_sql.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/openlineage/utils/test_utils.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/security/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/security/test_permissions.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/sqlalchemy/__init__.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/sqlalchemy/test_orm.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/test__compat_utils.py +0 -0
- {apache_airflow_providers_common_compat-1.10.1 → apache_airflow_providers_common_compat-1.12.0rc1}/tests/unit/common/compat/test_sdk.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-common-compat
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.12.0rc1
|
|
4
4
|
Summary: Provider package apache-airflow-providers-common-compat for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,common.compat,airflow,integration
|
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
@@ -22,13 +22,13 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
22
22
|
Classifier: Topic :: System :: Monitoring
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
License-File: NOTICE
|
|
25
|
-
Requires-Dist: apache-airflow>=2.11.
|
|
25
|
+
Requires-Dist: apache-airflow>=2.11.0rc1
|
|
26
26
|
Requires-Dist: asgiref>=2.3.0
|
|
27
27
|
Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
|
|
28
28
|
Requires-Dist: apache-airflow-providers-standard ; extra == "standard"
|
|
29
29
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
30
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
31
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
30
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/changelog.html
|
|
31
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-compat/1.12.0
|
|
32
32
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
33
33
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
34
34
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -61,7 +61,7 @@ Provides-Extra: standard
|
|
|
61
61
|
|
|
62
62
|
Package ``apache-airflow-providers-common-compat``
|
|
63
63
|
|
|
64
|
-
Release: ``1.
|
|
64
|
+
Release: ``1.12.0``
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
Common Compatibility Provider - providing compatibility code for previous Airflow versions
|
|
@@ -74,7 +74,7 @@ This is a provider package for ``common.compat`` provider. All classes for this
|
|
|
74
74
|
are in ``airflow.providers.common.compat`` python package.
|
|
75
75
|
|
|
76
76
|
You can find package information and changelog for the provider
|
|
77
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
77
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/>`_.
|
|
78
78
|
|
|
79
79
|
Installation
|
|
80
80
|
------------
|
|
@@ -125,5 +125,5 @@ Extra Dependencies
|
|
|
125
125
|
=============== ========================================
|
|
126
126
|
|
|
127
127
|
The changelog for the provider package can be found in the
|
|
128
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
128
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/changelog.html>`_.
|
|
129
129
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-common-compat``
|
|
25
25
|
|
|
26
|
-
Release: ``1.
|
|
26
|
+
Release: ``1.12.0``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
Common Compatibility Provider - providing compatibility code for previous Airflow versions
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``common.compat`` provider. All classes for this
|
|
|
36
36
|
are in ``airflow.providers.common.compat`` python package.
|
|
37
37
|
|
|
38
38
|
You can find package information and changelog for the provider
|
|
39
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -87,4 +87,4 @@ Extra Dependencies
|
|
|
87
87
|
=============== ========================================
|
|
88
88
|
|
|
89
89
|
The changelog for the provider package can be found in the
|
|
90
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
90
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/changelog.html>`_.
|
|
@@ -25,6 +25,49 @@
|
|
|
25
25
|
Changelog
|
|
26
26
|
---------
|
|
27
27
|
|
|
28
|
+
1.12.0
|
|
29
|
+
......
|
|
30
|
+
|
|
31
|
+
Features
|
|
32
|
+
~~~~~~~~
|
|
33
|
+
|
|
34
|
+
* ``Allow providers to consume AirflowConfigException from compat sdk (#60044)``
|
|
35
|
+
* ``Source conf from 'airflow.sdk.configuration.conf' for apache providers (#59966)``
|
|
36
|
+
* ``Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)``
|
|
37
|
+
|
|
38
|
+
Misc
|
|
39
|
+
~~~~
|
|
40
|
+
|
|
41
|
+
* ``New year means updated Copyright notices (#60344)``
|
|
42
|
+
* ``Move listeners module to shared library for client server separation (#59883)``
|
|
43
|
+
* ``Move over plugins_manager to a shared library (#59956)``
|
|
44
|
+
|
|
45
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
46
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
47
|
+
* ``Add support for async callables in PythonOperator (#59087)``
|
|
48
|
+
* ``Revert "Add support for async callables in PythonOperator (#59087)" (#60266)``
|
|
49
|
+
|
|
50
|
+
1.11.0
|
|
51
|
+
......
|
|
52
|
+
|
|
53
|
+
Features
|
|
54
|
+
~~~~~~~~
|
|
55
|
+
|
|
56
|
+
* ``Extract shared "module_loading" distribution (#59139)``
|
|
57
|
+
|
|
58
|
+
Bug Fixes
|
|
59
|
+
~~~~~~~~~
|
|
60
|
+
|
|
61
|
+
* ``Fix circular import errors when CeleryExecutor is used with sentry (#59745)``
|
|
62
|
+
|
|
63
|
+
Misc
|
|
64
|
+
~~~~
|
|
65
|
+
|
|
66
|
+
* ``Prevent client secrets and proxy credentials from being logged in Microsoft Graph hook logs (#59688)``
|
|
67
|
+
|
|
68
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
69
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
70
|
+
|
|
28
71
|
1.10.1
|
|
29
72
|
......
|
|
30
73
|
|
|
@@ -62,7 +62,7 @@ apache-airflow-providers-common-compat package
|
|
|
62
62
|
Common Compatibility Provider - providing compatibility code for previous Airflow versions
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
Release: 1.
|
|
65
|
+
Release: 1.12.0
|
|
66
66
|
|
|
67
67
|
Provider package
|
|
68
68
|
----------------
|
|
@@ -114,5 +114,5 @@ Downloading official packages
|
|
|
114
114
|
You can download officially released packages and verify their checksums and signatures from the
|
|
115
115
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
116
116
|
|
|
117
|
-
* `The apache-airflow-providers-common-compat 1.
|
|
118
|
-
* `The apache-airflow-providers-common-compat 1.
|
|
117
|
+
* `The apache-airflow-providers-common-compat 1.12.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0.tar.gz.sha512>`__)
|
|
118
|
+
* `The apache-airflow-providers-common-compat 1.12.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_compat-1.12.0-py3-none-any.whl.sha512>`__)
|
|
@@ -22,12 +22,14 @@ description: |
|
|
|
22
22
|
Common Compatibility Provider - providing compatibility code for previous Airflow versions
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1768334645
|
|
26
26
|
# Note that those versions are maintained by release manager - do not update them manually
|
|
27
27
|
# with the exception of case where other provider in sources has >= new provider version.
|
|
28
28
|
# In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
|
|
29
29
|
# to be done in the same PR
|
|
30
30
|
versions:
|
|
31
|
+
- 1.12.0
|
|
32
|
+
- 1.11.0
|
|
31
33
|
- 1.10.1
|
|
32
34
|
- 1.10.0
|
|
33
35
|
- 1.9.0
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-common-compat"
|
|
28
|
-
version = "1.
|
|
28
|
+
version = "1.12.0rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-common-compat for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
license = "Apache-2.0"
|
|
@@ -58,7 +58,7 @@ requires-python = ">=3.10"
|
|
|
58
58
|
# Make sure to run ``prek update-providers-dependencies --all-files``
|
|
59
59
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
60
60
|
dependencies = [
|
|
61
|
-
"apache-airflow>=2.11.
|
|
61
|
+
"apache-airflow>=2.11.0rc1",
|
|
62
62
|
"asgiref>=2.3.0",
|
|
63
63
|
]
|
|
64
64
|
|
|
@@ -107,8 +107,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
107
107
|
apache-airflow-providers-standard = {workspace = true}
|
|
108
108
|
|
|
109
109
|
[project.urls]
|
|
110
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
111
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.
|
|
110
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-compat/1.12.0"
|
|
111
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-compat/1.12.0/changelog.html"
|
|
112
112
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
113
113
|
"Source Code" = "https://github.com/apache/airflow"
|
|
114
114
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "1.
|
|
32
|
+
__version__ = "1.12.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.11.0"
|
|
@@ -23,7 +23,7 @@ from importlib import metadata
|
|
|
23
23
|
|
|
24
24
|
from packaging.version import Version
|
|
25
25
|
|
|
26
|
-
from airflow.
|
|
26
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def require_provider_version(provider_name: str, provider_min_version: str):
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
from airflow.utils.module_loading import (
|
|
21
|
+
import_string,
|
|
22
|
+
iter_namespace,
|
|
23
|
+
qualname,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
except ImportError:
|
|
27
|
+
from airflow.sdk.module_loading import import_string, iter_namespace, qualname
|
|
28
|
+
|
|
29
|
+
try:
|
|
30
|
+
# This function was not available in Airflow 3.0/3.1 in module_loading, but it's good to keep it in the
|
|
31
|
+
# same shared module - good for reuse
|
|
32
|
+
from airflow.sdk._shared.module_loading import is_valid_dotpath
|
|
33
|
+
|
|
34
|
+
except ImportError:
|
|
35
|
+
# TODO: Remove it when Airflow 3.2.0 is the minimum version
|
|
36
|
+
def is_valid_dotpath(path: str) -> bool:
|
|
37
|
+
import re
|
|
38
|
+
|
|
39
|
+
if not isinstance(path, str):
|
|
40
|
+
return False
|
|
41
|
+
pattern = r"^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"
|
|
42
|
+
return bool(re.match(pattern, path))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
__all__ = [
|
|
46
|
+
"import_string",
|
|
47
|
+
"qualname",
|
|
48
|
+
"iter_namespace",
|
|
49
|
+
]
|
|
@@ -24,7 +24,7 @@ from typing import Any
|
|
|
24
24
|
|
|
25
25
|
from packaging.version import Version
|
|
26
26
|
|
|
27
|
-
from airflow.
|
|
27
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
28
28
|
|
|
29
29
|
log = logging.getLogger(__name__)
|
|
30
30
|
|
|
@@ -68,6 +68,7 @@ if TYPE_CHECKING:
|
|
|
68
68
|
task_group as task_group,
|
|
69
69
|
teardown as teardown,
|
|
70
70
|
)
|
|
71
|
+
from airflow.sdk._shared.listeners import hookimpl as hookimpl
|
|
71
72
|
from airflow.sdk.bases.decorator import (
|
|
72
73
|
DecoratedMappedOperator as DecoratedMappedOperator,
|
|
73
74
|
DecoratedOperator as DecoratedOperator,
|
|
@@ -76,13 +77,16 @@ if TYPE_CHECKING:
|
|
|
76
77
|
task_decorator_factory as task_decorator_factory,
|
|
77
78
|
)
|
|
78
79
|
from airflow.sdk.bases.sensor import poke_mode_only as poke_mode_only
|
|
80
|
+
from airflow.sdk.configuration import conf as conf
|
|
79
81
|
from airflow.sdk.definitions.context import context_merge as context_merge
|
|
80
82
|
from airflow.sdk.definitions.mappedoperator import MappedOperator as MappedOperator
|
|
81
83
|
from airflow.sdk.definitions.template import literal as literal
|
|
82
84
|
from airflow.sdk.exceptions import (
|
|
85
|
+
AirflowConfigException as AirflowConfigException,
|
|
83
86
|
AirflowException as AirflowException,
|
|
84
87
|
AirflowFailException as AirflowFailException,
|
|
85
88
|
AirflowNotFoundException as AirflowNotFoundException,
|
|
89
|
+
AirflowOptionalProviderFeatureException as AirflowOptionalProviderFeatureException,
|
|
86
90
|
AirflowSensorTimeout as AirflowSensorTimeout,
|
|
87
91
|
AirflowSkipException as AirflowSkipException,
|
|
88
92
|
AirflowTaskTimeout as AirflowTaskTimeout,
|
|
@@ -90,7 +94,10 @@ if TYPE_CHECKING:
|
|
|
90
94
|
TaskDeferred as TaskDeferred,
|
|
91
95
|
XComNotFound as XComNotFound,
|
|
92
96
|
)
|
|
93
|
-
from airflow.sdk.
|
|
97
|
+
from airflow.sdk.listener import get_listener_manager as get_listener_manager
|
|
98
|
+
from airflow.sdk.log import redact as redact
|
|
99
|
+
from airflow.sdk.observability.stats import Stats as Stats
|
|
100
|
+
from airflow.sdk.plugins_manager import AirflowPlugin as AirflowPlugin
|
|
94
101
|
|
|
95
102
|
# Airflow 3-only exceptions (conditionally imported)
|
|
96
103
|
if AIRFLOW_V_3_0_PLUS:
|
|
@@ -171,6 +178,10 @@ _IMPORT_MAP: dict[str, str | tuple[str, ...]] = {
|
|
|
171
178
|
# ============================================================================
|
|
172
179
|
"BaseNotifier": ("airflow.sdk", "airflow.notifications.basenotifier"),
|
|
173
180
|
# ============================================================================
|
|
181
|
+
# Plugins
|
|
182
|
+
# ============================================================================
|
|
183
|
+
"AirflowPlugin": ("airflow.sdk.plugins_manager", "airflow.plugins_manager"),
|
|
184
|
+
# ============================================================================
|
|
174
185
|
# Operator Links & Task Groups
|
|
175
186
|
# ============================================================================
|
|
176
187
|
"BaseOperatorLink": ("airflow.sdk", "airflow.models.baseoperatorlink"),
|
|
@@ -229,6 +240,7 @@ _IMPORT_MAP: dict[str, str | tuple[str, ...]] = {
|
|
|
229
240
|
"AirflowException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
230
241
|
"AirflowFailException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
231
242
|
"AirflowNotFoundException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
243
|
+
"AirflowOptionalProviderFeatureException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
232
244
|
"AirflowSkipException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
233
245
|
"AirflowTaskTimeout": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
234
246
|
"AirflowSensorTimeout": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
@@ -239,6 +251,24 @@ _IMPORT_MAP: dict[str, str | tuple[str, ...]] = {
|
|
|
239
251
|
# Observability
|
|
240
252
|
# ============================================================================
|
|
241
253
|
"Stats": ("airflow.sdk.observability.stats", "airflow.stats"),
|
|
254
|
+
# ============================================================================
|
|
255
|
+
# Secrets Masking
|
|
256
|
+
# ============================================================================
|
|
257
|
+
"redact": (
|
|
258
|
+
"airflow.sdk.log",
|
|
259
|
+
"airflow.sdk._shared.secrets_masker",
|
|
260
|
+
"airflow.sdk.execution_time.secrets_masker",
|
|
261
|
+
"airflow.utils.log.secrets_masker",
|
|
262
|
+
),
|
|
263
|
+
# ============================================================================
|
|
264
|
+
# Listeners
|
|
265
|
+
# ============================================================================
|
|
266
|
+
"hookimpl": ("airflow.sdk._shared.listeners", "airflow.listeners"),
|
|
267
|
+
"get_listener_manager": ("airflow.sdk.listener", "airflow.listeners.listener"),
|
|
268
|
+
# Configuration
|
|
269
|
+
# ============================================================================
|
|
270
|
+
"conf": ("airflow.sdk.configuration", "airflow.configuration"),
|
|
271
|
+
"AirflowConfigException": ("airflow.sdk.exceptions", "airflow.exceptions"),
|
|
242
272
|
}
|
|
243
273
|
|
|
244
274
|
# Airflow 3-only exceptions (not available in Airflow 2)
|
|
@@ -35,13 +35,10 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
|
|
|
35
35
|
AIRFLOW_V_3_0_PLUS: bool = get_base_airflow_version_tuple() >= (3, 0, 0)
|
|
36
36
|
AIRFLOW_V_3_1_PLUS: bool = get_base_airflow_version_tuple() >= (3, 1, 0)
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
else:
|
|
41
|
-
from airflow.models import BaseOperator
|
|
38
|
+
# BaseOperator removed from version_compat to avoid circular imports
|
|
39
|
+
# Import it directly in files that need it instead
|
|
42
40
|
|
|
43
41
|
__all__ = [
|
|
44
42
|
"AIRFLOW_V_3_0_PLUS",
|
|
45
43
|
"AIRFLOW_V_3_1_PLUS",
|
|
46
|
-
"BaseOperator",
|
|
47
44
|
]
|
|
@@ -24,8 +24,8 @@ from unittest.mock import patch
|
|
|
24
24
|
|
|
25
25
|
import pytest
|
|
26
26
|
|
|
27
|
-
from airflow.exceptions import AirflowOptionalProviderFeatureException
|
|
28
27
|
from airflow.providers.common.compat.openlineage.check import require_openlineage_version
|
|
28
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
29
29
|
|
|
30
30
|
REQUIRE_OPENLINEAGE_VERSION = r"`require_openlineage_version` decorator must be used with at least one argument.*@require_openlineage_version\(provider_min_version=\"1\.0\.0\"\)"
|
|
31
31
|
|
|
@@ -22,8 +22,8 @@ from unittest.mock import patch
|
|
|
22
22
|
|
|
23
23
|
import pytest
|
|
24
24
|
|
|
25
|
-
from airflow.exceptions import AirflowOptionalProviderFeatureException
|
|
26
25
|
from airflow.providers.common.compat.check import require_provider_version
|
|
26
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def test_decorator_usage_without_parentheses():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|