apache-airflow-providers-common-compat 1.2.0rc1__tar.gz → 1.2.1rc1__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.

Potentially problematic release.


This version of apache-airflow-providers-common-compat might be problematic. Click here for more details.

Files changed (15) hide show
  1. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/PKG-INFO +29 -9
  2. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/README.rst +23 -4
  3. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/__init__.py +1 -1
  4. apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/assets/__init__.py +77 -0
  5. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/get_provider_info.py +2 -2
  6. apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/lineage/hook.py +106 -0
  7. apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/openlineage/utils/__init__.py +16 -0
  8. apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/openlineage/utils/utils.py +43 -0
  9. apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/security/__init__.py +16 -0
  10. apache_airflow_providers_common_compat-1.2.0rc1/airflow/providers/common/compat/lineage/hook.py → apache_airflow_providers_common_compat-1.2.1rc1/airflow/providers/common/compat/security/permissions.py +7 -18
  11. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/pyproject.toml +8 -5
  12. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/LICENSE +0 -0
  13. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/lineage/__init__.py +0 -0
  14. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/openlineage/__init__.py +0 -0
  15. {apache_airflow_providers_common_compat-1.2.0rc1 → apache_airflow_providers_common_compat-1.2.1rc1}/airflow/providers/common/compat/openlineage/facet.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-common-compat
3
- Version: 1.2.0rc1
3
+ Version: 1.2.1rc1
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>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
- Requires-Python: ~=3.8
8
+ Requires-Python: ~=3.9
9
9
  Description-Content-Type: text/x-rst
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Environment :: Console
@@ -15,20 +15,21 @@ Classifier: Intended Audience :: System Administrators
15
15
  Classifier: Framework :: Apache Airflow
16
16
  Classifier: Framework :: Apache Airflow :: Provider
17
17
  Classifier: License :: OSI Approved :: Apache Software License
18
- Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Topic :: System :: Monitoring
24
23
  Requires-Dist: apache-airflow>=2.8.0rc0
24
+ Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
25
25
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
26
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/changelog.html
27
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0
26
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/changelog.html
27
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1
28
28
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
29
29
  Project-URL: Source Code, https://github.com/apache/airflow
30
30
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
31
31
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
32
+ Provides-Extra: openlineage
32
33
 
33
34
 
34
35
  .. Licensed to the Apache Software Foundation (ASF) under one
@@ -74,7 +75,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
74
75
 
75
76
  Package ``apache-airflow-providers-common-compat``
76
77
 
77
- Release: ``1.2.0.rc1``
78
+ Release: ``1.2.1.rc1``
78
79
 
79
80
 
80
81
  ``Common Compatibility Provider - providing compatibility code for previous Airflow versions.``
@@ -87,7 +88,7 @@ This is a provider package for ``common.compat`` provider. All classes for this
87
88
  are in ``airflow.providers.common.compat`` python package.
88
89
 
89
90
  You can find package information and changelog for the provider
90
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/>`_.
91
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/>`_.
91
92
 
92
93
  Installation
93
94
  ------------
@@ -96,7 +97,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
96
97
  for the minimum Airflow version supported) via
97
98
  ``pip install apache-airflow-providers-common-compat``
98
99
 
99
- The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
100
+ The package supports the following python versions: 3.9,3.10,3.11,3.12
100
101
 
101
102
  Requirements
102
103
  ------------
@@ -107,5 +108,24 @@ PIP package Version required
107
108
  ``apache-airflow`` ``>=2.8.0``
108
109
  ================== ==================
109
110
 
111
+ Cross provider package dependencies
112
+ -----------------------------------
113
+
114
+ Those are dependencies that might be needed in order to use all the features of the package.
115
+ You need to install the specified provider packages in order to use them.
116
+
117
+ You can install such cross-provider dependencies when installing from PyPI. For example:
118
+
119
+ .. code-block:: bash
120
+
121
+ pip install apache-airflow-providers-common-compat[openlineage]
122
+
123
+
124
+ ============================================================================================================== ===============
125
+ Dependent package Extra
126
+ ============================================================================================================== ===============
127
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
128
+ ============================================================================================================== ===============
129
+
110
130
  The changelog for the provider package can be found in the
111
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/changelog.html>`_.
131
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-common-compat``
44
44
 
45
- Release: ``1.2.0.rc1``
45
+ Release: ``1.2.1.rc1``
46
46
 
47
47
 
48
48
  ``Common Compatibility Provider - providing compatibility code for previous Airflow versions.``
@@ -55,7 +55,7 @@ This is a provider package for ``common.compat`` provider. All classes for this
55
55
  are in ``airflow.providers.common.compat`` python package.
56
56
 
57
57
  You can find package information and changelog for the provider
58
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/>`_.
59
59
 
60
60
  Installation
61
61
  ------------
@@ -64,7 +64,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
64
64
  for the minimum Airflow version supported) via
65
65
  ``pip install apache-airflow-providers-common-compat``
66
66
 
67
- The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
67
+ The package supports the following python versions: 3.9,3.10,3.11,3.12
68
68
 
69
69
  Requirements
70
70
  ------------
@@ -75,5 +75,24 @@ PIP package Version required
75
75
  ``apache-airflow`` ``>=2.8.0``
76
76
  ================== ==================
77
77
 
78
+ Cross provider package dependencies
79
+ -----------------------------------
80
+
81
+ Those are dependencies that might be needed in order to use all the features of the package.
82
+ You need to install the specified provider packages in order to use them.
83
+
84
+ You can install such cross-provider dependencies when installing from PyPI. For example:
85
+
86
+ .. code-block:: bash
87
+
88
+ pip install apache-airflow-providers-common-compat[openlineage]
89
+
90
+
91
+ ============================================================================================================== ===============
92
+ Dependent package Extra
93
+ ============================================================================================================== ===============
94
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
95
+ ============================================================================================================== ===============
96
+
78
97
  The changelog for the provider package can be found in the
79
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/changelog.html>`_.
98
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/changelog.html>`_.
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.2.0"
32
+ __version__ = "1.2.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.8.0"
@@ -0,0 +1,77 @@
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
+
18
+ from __future__ import annotations
19
+
20
+ from typing import TYPE_CHECKING
21
+
22
+ from airflow import __version__ as AIRFLOW_VERSION
23
+
24
+ if TYPE_CHECKING:
25
+ from airflow.assets import (
26
+ Asset,
27
+ AssetAlias,
28
+ AssetAliasEvent,
29
+ AssetAll,
30
+ AssetAny,
31
+ expand_alias_to_assets,
32
+ )
33
+ from airflow.auth.managers.models.resource_details import AssetDetails
34
+ else:
35
+ try:
36
+ from airflow.assets import (
37
+ Asset,
38
+ AssetAlias,
39
+ AssetAliasEvent,
40
+ AssetAll,
41
+ AssetAny,
42
+ expand_alias_to_assets,
43
+ )
44
+ from airflow.auth.managers.models.resource_details import AssetDetails
45
+ except ModuleNotFoundError:
46
+ from packaging.version import Version
47
+
48
+ _IS_AIRFLOW_2_10_OR_HIGHER = Version(Version(AIRFLOW_VERSION).base_version) >= Version("2.10.0")
49
+ _IS_AIRFLOW_2_9_OR_HIGHER = Version(Version(AIRFLOW_VERSION).base_version) >= Version("2.9.0")
50
+
51
+ # dataset is renamed to asset since Airflow 3.0
52
+ from airflow.auth.managers.models.resource_details import DatasetDetails as AssetDetails
53
+ from airflow.datasets import Dataset as Asset
54
+
55
+ if _IS_AIRFLOW_2_9_OR_HIGHER:
56
+ from airflow.datasets import (
57
+ DatasetAll as AssetAll,
58
+ DatasetAny as AssetAny,
59
+ )
60
+
61
+ if _IS_AIRFLOW_2_10_OR_HIGHER:
62
+ from airflow.datasets import (
63
+ DatasetAlias as AssetAlias,
64
+ DatasetAliasEvent as AssetAliasEvent,
65
+ expand_alias_to_datasets as expand_alias_to_assets,
66
+ )
67
+
68
+
69
+ __all__ = [
70
+ "Asset",
71
+ "AssetAlias",
72
+ "AssetAliasEvent",
73
+ "AssetAll",
74
+ "AssetAny",
75
+ "AssetDetails",
76
+ "expand_alias_to_assets",
77
+ ]
@@ -28,8 +28,8 @@ def get_provider_info():
28
28
  "name": "Common Compat",
29
29
  "description": "``Common Compatibility Provider - providing compatibility code for previous Airflow versions.``\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1723970013,
32
- "versions": ["1.2.0", "1.1.0", "1.0.0"],
31
+ "source-date-epoch": 1728484960,
32
+ "versions": ["1.2.1", "1.2.0", "1.1.0", "1.0.0"],
33
33
  "dependencies": ["apache-airflow>=2.8.0"],
34
34
  "integrations": [
35
35
  {
@@ -0,0 +1,106 @@
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
+ from importlib.util import find_spec
20
+
21
+
22
+ def _get_asset_compat_hook_lineage_collector():
23
+ from airflow.lineage.hook import get_hook_lineage_collector
24
+
25
+ collector = get_hook_lineage_collector()
26
+
27
+ if all(
28
+ getattr(collector, asset_method_name, None)
29
+ for asset_method_name in ("add_input_asset", "add_output_asset", "collected_assets")
30
+ ):
31
+ return collector
32
+
33
+ # dataset is renamed as asset in Airflow 3.0
34
+
35
+ from functools import wraps
36
+
37
+ from airflow.lineage.hook import DatasetLineageInfo, HookLineage
38
+
39
+ DatasetLineageInfo.asset = DatasetLineageInfo.dataset
40
+
41
+ def rename_dataset_kwargs_as_assets_kwargs(function):
42
+ @wraps(function)
43
+ def wrapper(*args, **kwargs):
44
+ if "asset_kwargs" in kwargs:
45
+ kwargs["dataset_kwargs"] = kwargs.pop("asset_kwargs")
46
+
47
+ if "asset_extra" in kwargs:
48
+ kwargs["dataset_extra"] = kwargs.pop("asset_extra")
49
+
50
+ return function(*args, **kwargs)
51
+
52
+ return wrapper
53
+
54
+ collector.create_asset = rename_dataset_kwargs_as_assets_kwargs(collector.create_dataset)
55
+ collector.add_input_asset = rename_dataset_kwargs_as_assets_kwargs(collector.add_input_dataset)
56
+ collector.add_output_asset = rename_dataset_kwargs_as_assets_kwargs(collector.add_output_dataset)
57
+
58
+ def collected_assets_compat(collector) -> HookLineage:
59
+ """Get the collected hook lineage information."""
60
+ lineage = collector.collected_datasets
61
+ return HookLineage(
62
+ [
63
+ DatasetLineageInfo(dataset=item.dataset, count=item.count, context=item.context)
64
+ for item in lineage.inputs
65
+ ],
66
+ [
67
+ DatasetLineageInfo(dataset=item.dataset, count=item.count, context=item.context)
68
+ for item in lineage.outputs
69
+ ],
70
+ )
71
+
72
+ setattr(
73
+ collector.__class__,
74
+ "collected_assets",
75
+ property(lambda collector: collected_assets_compat(collector)),
76
+ )
77
+
78
+ return collector
79
+
80
+
81
+ def get_hook_lineage_collector():
82
+ # HookLineageCollector added in 2.10
83
+ try:
84
+ if find_spec("airflow.assets"):
85
+ # Dataset has been renamed as Asset in 3.0
86
+ from airflow.lineage.hook import get_hook_lineage_collector
87
+
88
+ return get_hook_lineage_collector()
89
+
90
+ return _get_asset_compat_hook_lineage_collector()
91
+ except ImportError:
92
+
93
+ class NoOpCollector:
94
+ """
95
+ NoOpCollector is a hook lineage collector that does nothing.
96
+
97
+ It is used when you want to disable lineage collection.
98
+ """
99
+
100
+ def add_input_asset(self, *_, **__):
101
+ pass
102
+
103
+ def add_output_asset(self, *_, **__):
104
+ pass
105
+
106
+ return NoOpCollector()
@@ -0,0 +1,16 @@
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.
@@ -0,0 +1,43 @@
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
+
18
+ from __future__ import annotations
19
+
20
+ from functools import wraps
21
+ from typing import TYPE_CHECKING
22
+
23
+ if TYPE_CHECKING:
24
+ from airflow.providers.openlineage.utils.utils import translate_airflow_asset
25
+ else:
26
+ try:
27
+ from airflow.providers.openlineage.utils.utils import translate_airflow_asset
28
+ except ImportError:
29
+ from airflow.providers.openlineage.utils.utils import translate_airflow_dataset
30
+
31
+ def rename_asset_as_dataset(function):
32
+ @wraps(function)
33
+ def wrapper(*args, **kwargs):
34
+ if "asset" in kwargs:
35
+ kwargs["dataset"] = kwargs.pop("asset")
36
+ return function(*args, **kwargs)
37
+
38
+ return wrapper
39
+
40
+ translate_airflow_asset = rename_asset_as_dataset(translate_airflow_dataset)
41
+
42
+
43
+ __all__ = ["translate_airflow_asset"]
@@ -0,0 +1,16 @@
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.
@@ -16,26 +16,15 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
+ from typing import TYPE_CHECKING
19
20
 
20
- def get_hook_lineage_collector():
21
- # HookLineageCollector added in 2.10
21
+ if TYPE_CHECKING:
22
+ from airflow.security.permissions import RESOURCE_ASSET
23
+ else:
22
24
  try:
23
- from airflow.lineage.hook import get_hook_lineage_collector
24
-
25
- return get_hook_lineage_collector()
25
+ from airflow.security.permissions import RESOURCE_ASSET
26
26
  except ImportError:
27
+ from airflow.security.permissions import RESOURCE_DATASET as RESOURCE_ASSET
27
28
 
28
- class NoOpCollector:
29
- """
30
- NoOpCollector is a hook lineage collector that does nothing.
31
-
32
- It is used when you want to disable lineage collection.
33
- """
34
-
35
- def add_input_dataset(self, *_, **__):
36
- pass
37
-
38
- def add_output_dataset(self, *_, **__):
39
- pass
40
29
 
41
- return NoOpCollector()
30
+ __all__ = ["RESOURCE_ASSET"]
@@ -28,7 +28,7 @@ build-backend = "flit_core.buildapi"
28
28
 
29
29
  [project]
30
30
  name = "apache-airflow-providers-common-compat"
31
- version = "1.2.0.rc1"
31
+ version = "1.2.1.rc1"
32
32
  description = "Provider package apache-airflow-providers-common-compat for Apache Airflow"
33
33
  readme = "README.rst"
34
34
  authors = [
@@ -47,21 +47,20 @@ classifiers = [
47
47
  "Framework :: Apache Airflow",
48
48
  "Framework :: Apache Airflow :: Provider",
49
49
  "License :: OSI Approved :: Apache Software License",
50
- "Programming Language :: Python :: 3.8",
51
50
  "Programming Language :: Python :: 3.9",
52
51
  "Programming Language :: Python :: 3.10",
53
52
  "Programming Language :: Python :: 3.11",
54
53
  "Programming Language :: Python :: 3.12",
55
54
  "Topic :: System :: Monitoring",
56
55
  ]
57
- requires-python = "~=3.8"
56
+ requires-python = "~=3.9"
58
57
  dependencies = [
59
58
  "apache-airflow>=2.8.0rc0",
60
59
  ]
61
60
 
62
61
  [project.urls]
63
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0"
64
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.0/changelog.html"
62
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1"
63
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-compat/1.2.1/changelog.html"
65
64
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
66
65
  "Source Code" = "https://github.com/apache/airflow"
67
66
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -70,6 +69,10 @@ dependencies = [
70
69
 
71
70
  [project.entry-points."apache_airflow_provider"]
72
71
  provider_info = "airflow.providers.common.compat.get_provider_info:get_provider_info"
72
+ [project.optional-dependencies]
73
+ "openlineage" = [
74
+ "apache-airflow-providers-openlineage",
75
+ ]
73
76
 
74
77
  [tool.flit.module]
75
78
  name = "airflow.providers.common.compat"