apache-airflow-providers-dbt-cloud 4.3.3__tar.gz → 4.4.0__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_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/PKG-INFO +9 -9
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/README.rst +4 -4
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/changelog.rst +26 -0
- apache_airflow_providers_dbt_cloud-4.4.0/docs/commits.rst +35 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/index.rst +5 -5
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/provider.yaml +6 -2
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/pyproject.toml +5 -5
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/__init__.py +3 -3
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/utils/openlineage.py +20 -10
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/version_compat.py +0 -1
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/system/dbt/cloud/example_dbt_cloud.py +1 -1
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/utils/test_openlineage.py +34 -13
- apache_airflow_providers_dbt_cloud-4.3.3/docs/commits.rst +0 -611
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/conf.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/connections.rst +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/integration-logos/dbt.png +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/operators.rst +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/security.rst +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/LICENSE +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/get_provider_info.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/hooks/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/hooks/dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/operators/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/operators/dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/sensors/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/sensors/dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/triggers/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/triggers/dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/src/airflow/providers/dbt/cloud/utils/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/conftest.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/system/dbt/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/system/dbt/cloud/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/hooks/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/hooks/test_dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/operators/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/operators/test_dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/sensors/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/sensors/test_dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/test_data/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/test_data/catalog.json +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/test_data/job_run.json +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/test_data/manifest.json +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/test_data/run_results.json +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/triggers/__init__.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/triggers/test_dbt.py +0 -0
- {apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/tests/unit/dbt/cloud/utils/__init__.py +0 -0
{apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-dbt-cloud
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.4.0
|
|
4
4
|
Summary: Provider package apache-airflow-providers-dbt-cloud for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,dbt.cloud,airflow,integration
|
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
@@ -20,15 +20,15 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
22
|
Classifier: Topic :: System :: Monitoring
|
|
23
|
-
Requires-Dist: apache-airflow>=2.
|
|
23
|
+
Requires-Dist: apache-airflow>=2.10.0
|
|
24
24
|
Requires-Dist: apache-airflow-providers-common-compat>=1.6.0
|
|
25
25
|
Requires-Dist: apache-airflow-providers-http
|
|
26
26
|
Requires-Dist: asgiref>=2.3.0
|
|
27
27
|
Requires-Dist: aiohttp>=3.9.2
|
|
28
|
-
Requires-Dist: apache-airflow-providers-openlineage>=2.
|
|
28
|
+
Requires-Dist: apache-airflow-providers-openlineage>=2.3.0 ; extra == "openlineage"
|
|
29
29
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
30
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
31
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
30
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/changelog.html
|
|
31
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.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
|
|
@@ -60,7 +60,7 @@ Provides-Extra: openlineage
|
|
|
60
60
|
|
|
61
61
|
Package ``apache-airflow-providers-dbt-cloud``
|
|
62
62
|
|
|
63
|
-
Release: ``4.
|
|
63
|
+
Release: ``4.4.0``
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
`dbt Cloud <https://www.getdbt.com/product/dbt-cloud/>`__
|
|
@@ -73,7 +73,7 @@ This is a provider package for ``dbt.cloud`` provider. All classes for this prov
|
|
|
73
73
|
are in ``airflow.providers.dbt.cloud`` python package.
|
|
74
74
|
|
|
75
75
|
You can find package information and changelog for the provider
|
|
76
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
76
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/>`_.
|
|
77
77
|
|
|
78
78
|
Installation
|
|
79
79
|
------------
|
|
@@ -90,7 +90,7 @@ Requirements
|
|
|
90
90
|
========================================== ==================
|
|
91
91
|
PIP package Version required
|
|
92
92
|
========================================== ==================
|
|
93
|
-
``apache-airflow`` ``>=2.
|
|
93
|
+
``apache-airflow`` ``>=2.10.0``
|
|
94
94
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
95
95
|
``apache-airflow-providers-http``
|
|
96
96
|
``asgiref`` ``>=2.3.0``
|
|
@@ -119,5 +119,5 @@ Dependent package
|
|
|
119
119
|
================================================================================================================== =================
|
|
120
120
|
|
|
121
121
|
The changelog for the provider package can be found in the
|
|
122
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
122
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/changelog.html>`_.
|
|
123
123
|
|
{apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/README.rst
RENAMED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-dbt-cloud``
|
|
25
25
|
|
|
26
|
-
Release: ``4.
|
|
26
|
+
Release: ``4.4.0``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
`dbt Cloud <https://www.getdbt.com/product/dbt-cloud/>`__
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``dbt.cloud`` provider. All classes for this prov
|
|
|
36
36
|
are in ``airflow.providers.dbt.cloud`` 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-dbt-cloud/4.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -53,7 +53,7 @@ Requirements
|
|
|
53
53
|
========================================== ==================
|
|
54
54
|
PIP package Version required
|
|
55
55
|
========================================== ==================
|
|
56
|
-
``apache-airflow`` ``>=2.
|
|
56
|
+
``apache-airflow`` ``>=2.10.0``
|
|
57
57
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
58
58
|
``apache-airflow-providers-http``
|
|
59
59
|
``asgiref`` ``>=2.3.0``
|
|
@@ -82,4 +82,4 @@ Dependent package
|
|
|
82
82
|
================================================================================================================== =================
|
|
83
83
|
|
|
84
84
|
The changelog for the provider package can be found in the
|
|
85
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
85
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/changelog.html>`_.
|
|
@@ -28,6 +28,32 @@
|
|
|
28
28
|
Changelog
|
|
29
29
|
---------
|
|
30
30
|
|
|
31
|
+
4.4.0
|
|
32
|
+
.....
|
|
33
|
+
|
|
34
|
+
.. note::
|
|
35
|
+
This release of provider is only available for Airflow 2.10+ as explained in the
|
|
36
|
+
Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
|
|
37
|
+
|
|
38
|
+
Features
|
|
39
|
+
~~~~~~~~
|
|
40
|
+
|
|
41
|
+
* ``add root parent information to OpenLineage events (#49237)``
|
|
42
|
+
|
|
43
|
+
Misc
|
|
44
|
+
~~~~
|
|
45
|
+
|
|
46
|
+
* ``nit: Switch to emitting OL events with adapter and not client directly (#50398)``
|
|
47
|
+
* ``fix: adjust dag_run extraction for Airflow 3 in OL utils (#50346)``
|
|
48
|
+
* ``Remove AIRFLOW_2_10_PLUS conditions (#49877)``
|
|
49
|
+
* ``Bump min Airflow version in providers to 2.10 (#49843)``
|
|
50
|
+
* ``Use Label class from task sdk in providers (#49398)``
|
|
51
|
+
|
|
52
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
53
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
54
|
+
* ``Update description of provider.yaml dependencies (#50231)``
|
|
55
|
+
* ``Avoid committing history for providers (#49907)``
|
|
56
|
+
|
|
31
57
|
4.3.3
|
|
32
58
|
.....
|
|
33
59
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
|
|
2
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
or more contributor license agreements. See the NOTICE file
|
|
4
|
+
distributed with this work for additional information
|
|
5
|
+
regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
to you under the Apache License, Version 2.0 (the
|
|
7
|
+
"License"); you may not use this file except in compliance
|
|
8
|
+
with the License. You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
.. Unless required by applicable law or agreed to in writing,
|
|
13
|
+
software distributed under the License is distributed on an
|
|
14
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
KIND, either express or implied. See the License for the
|
|
16
|
+
specific language governing permissions and limitations
|
|
17
|
+
under the License.
|
|
18
|
+
|
|
19
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
20
|
+
|
|
21
|
+
.. IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
22
|
+
`PROVIDER_COMMITS_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
23
|
+
|
|
24
|
+
.. THE REMAINDER OF THE FILE IS AUTOMATICALLY GENERATED. IT WILL BE OVERWRITTEN!
|
|
25
|
+
|
|
26
|
+
Package apache-airflow-providers-dbt-cloud
|
|
27
|
+
------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
`dbt Cloud <https://www.getdbt.com/product/dbt-cloud/>`__
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
This is detailed commit list of changes for versions provider package: ``dbt.cloud``.
|
|
33
|
+
For high-level changelog, see :doc:`package information including changelog <index>`.
|
|
34
|
+
|
|
35
|
+
.. airflow-providers-commits::
|
{apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/docs/index.rst
RENAMED
|
@@ -81,7 +81,7 @@ apache-airflow-providers-dbt-cloud package
|
|
|
81
81
|
`dbt Cloud <https://www.getdbt.com/product/dbt-cloud/>`__
|
|
82
82
|
|
|
83
83
|
|
|
84
|
-
Release: 4.
|
|
84
|
+
Release: 4.4.0
|
|
85
85
|
|
|
86
86
|
Provider package
|
|
87
87
|
----------------
|
|
@@ -99,12 +99,12 @@ For the minimum Airflow version supported, see ``Requirements`` below.
|
|
|
99
99
|
Requirements
|
|
100
100
|
------------
|
|
101
101
|
|
|
102
|
-
The minimum Apache Airflow version supported by this provider distribution is ``2.
|
|
102
|
+
The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
|
|
103
103
|
|
|
104
104
|
========================================== ==================
|
|
105
105
|
PIP package Version required
|
|
106
106
|
========================================== ==================
|
|
107
|
-
``apache-airflow`` ``>=2.
|
|
107
|
+
``apache-airflow`` ``>=2.10.0``
|
|
108
108
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
109
109
|
``apache-airflow-providers-http``
|
|
110
110
|
``asgiref`` ``>=2.3.0``
|
|
@@ -138,5 +138,5 @@ Downloading official packages
|
|
|
138
138
|
You can download officially released packages and verify their checksums and signatures from the
|
|
139
139
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
140
140
|
|
|
141
|
-
* `The apache-airflow-providers-dbt-cloud 4.
|
|
142
|
-
* `The apache-airflow-providers-dbt-cloud 4.
|
|
141
|
+
* `The apache-airflow-providers-dbt-cloud 4.4.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0.tar.gz.sha512>`__)
|
|
142
|
+
* `The apache-airflow-providers-dbt-cloud 4.4.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_dbt_cloud-4.4.0-py3-none-any.whl.sha512>`__)
|
{apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/provider.yaml
RENAMED
|
@@ -22,9 +22,13 @@ description: |
|
|
|
22
22
|
`dbt Cloud <https://www.getdbt.com/product/dbt-cloud/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
26
|
-
#
|
|
25
|
+
source-date-epoch: 1747132505
|
|
26
|
+
# Note that those versions are maintained by release manager - do not update them manually
|
|
27
|
+
# with the exception of case where other provider in sources has >= new provider version.
|
|
28
|
+
# In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
|
|
29
|
+
# to be done in the same PR
|
|
27
30
|
versions:
|
|
31
|
+
- 4.4.0
|
|
28
32
|
- 4.3.3
|
|
29
33
|
- 4.3.2
|
|
30
34
|
- 4.3.1
|
{apache_airflow_providers_dbt_cloud-4.3.3 → apache_airflow_providers_dbt_cloud-4.4.0}/pyproject.toml
RENAMED
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-dbt-cloud"
|
|
28
|
-
version = "4.
|
|
28
|
+
version = "4.4.0"
|
|
29
29
|
description = "Provider package apache-airflow-providers-dbt-cloud for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -57,7 +57,7 @@ requires-python = "~=3.9"
|
|
|
57
57
|
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
|
|
58
58
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
59
59
|
dependencies = [
|
|
60
|
-
"apache-airflow>=2.
|
|
60
|
+
"apache-airflow>=2.10.0",
|
|
61
61
|
"apache-airflow-providers-common-compat>=1.6.0",
|
|
62
62
|
"apache-airflow-providers-http",
|
|
63
63
|
"asgiref>=2.3.0",
|
|
@@ -69,7 +69,7 @@ dependencies = [
|
|
|
69
69
|
[project.optional-dependencies]
|
|
70
70
|
# pip install apache-airflow-providers-dbt-cloud[openlineage]
|
|
71
71
|
"openlineage" = [
|
|
72
|
-
"apache-airflow-providers-openlineage>=2.
|
|
72
|
+
"apache-airflow-providers-openlineage>=2.3.0",
|
|
73
73
|
]
|
|
74
74
|
|
|
75
75
|
[dependency-groups]
|
|
@@ -109,8 +109,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
109
109
|
apache-airflow-providers-standard = {workspace = true}
|
|
110
110
|
|
|
111
111
|
[project.urls]
|
|
112
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
113
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.
|
|
112
|
+
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0"
|
|
113
|
+
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-dbt-cloud/4.4.0/changelog.html"
|
|
114
114
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
115
115
|
"Source Code" = "https://github.com/apache/airflow"
|
|
116
116
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "4.
|
|
32
|
+
__version__ = "4.4.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
|
-
"2.
|
|
35
|
+
"2.10.0"
|
|
36
36
|
):
|
|
37
37
|
raise RuntimeError(
|
|
38
|
-
f"The package `apache-airflow-providers-dbt-cloud:{__version__}` needs Apache Airflow 2.
|
|
38
|
+
f"The package `apache-airflow-providers-dbt-cloud:{__version__}` needs Apache Airflow 2.10.0+"
|
|
39
39
|
)
|
|
@@ -22,7 +22,7 @@ import re
|
|
|
22
22
|
from typing import TYPE_CHECKING
|
|
23
23
|
|
|
24
24
|
from airflow.providers.common.compat.openlineage.check import require_openlineage_version
|
|
25
|
-
from airflow.providers.dbt.cloud.version_compat import
|
|
25
|
+
from airflow.providers.dbt.cloud.version_compat import AIRFLOW_V_3_0_PLUS
|
|
26
26
|
|
|
27
27
|
if TYPE_CHECKING:
|
|
28
28
|
from airflow.models.taskinstance import TaskInstance
|
|
@@ -48,14 +48,15 @@ def _get_logical_date(task_instance):
|
|
|
48
48
|
return date
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
def
|
|
52
|
-
# todo: remove when min airflow version >=
|
|
53
|
-
if
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
def _get_dag_run_clear_number(task_instance):
|
|
52
|
+
# todo: remove when min airflow version >= 3.0
|
|
53
|
+
if AIRFLOW_V_3_0_PLUS:
|
|
54
|
+
dagrun = task_instance.get_template_context()["dag_run"]
|
|
55
|
+
return dagrun.clear_number
|
|
56
|
+
return task_instance.dag_run.clear_number
|
|
56
57
|
|
|
57
58
|
|
|
58
|
-
@require_openlineage_version(provider_min_version="2.
|
|
59
|
+
@require_openlineage_version(provider_min_version="2.3.0")
|
|
59
60
|
def generate_openlineage_events_from_dbt_cloud_run(
|
|
60
61
|
operator: DbtCloudRunJobOperator | DbtCloudJobRunSensor, task_instance: TaskInstance
|
|
61
62
|
) -> OperatorLineage:
|
|
@@ -144,16 +145,25 @@ def generate_openlineage_events_from_dbt_cloud_run(
|
|
|
144
145
|
dag_id=task_instance.dag_id,
|
|
145
146
|
task_id=operator.task_id,
|
|
146
147
|
logical_date=_get_logical_date(task_instance),
|
|
147
|
-
try_number=
|
|
148
|
+
try_number=task_instance.try_number,
|
|
148
149
|
map_index=task_instance.map_index,
|
|
149
150
|
)
|
|
150
151
|
|
|
152
|
+
root_parent_run_id = OpenLineageAdapter.build_dag_run_id(
|
|
153
|
+
dag_id=task_instance.dag_id,
|
|
154
|
+
logical_date=_get_logical_date(task_instance),
|
|
155
|
+
clear_number=_get_dag_run_clear_number(task_instance),
|
|
156
|
+
)
|
|
157
|
+
|
|
151
158
|
parent_job = ParentRunMetadata(
|
|
152
159
|
run_id=parent_run_id,
|
|
153
160
|
job_name=f"{task_instance.dag_id}.{task_instance.task_id}",
|
|
154
161
|
job_namespace=namespace(),
|
|
162
|
+
root_parent_run_id=root_parent_run_id,
|
|
163
|
+
root_parent_job_name=task_instance.dag_id,
|
|
164
|
+
root_parent_job_namespace=namespace(),
|
|
155
165
|
)
|
|
156
|
-
|
|
166
|
+
adapter = get_openlineage_listener().adapter
|
|
157
167
|
|
|
158
168
|
# process each step in loop, sending generated events in the same order as steps
|
|
159
169
|
for counter, artifacts in enumerate(step_artifacts, 1):
|
|
@@ -183,7 +193,7 @@ def generate_openlineage_events_from_dbt_cloud_run(
|
|
|
183
193
|
log.debug("Found %s OpenLineage events for artifact no. %s.", len(events), counter)
|
|
184
194
|
|
|
185
195
|
for event in events:
|
|
186
|
-
|
|
196
|
+
adapter.emit(event=event)
|
|
187
197
|
log.debug("Emitted all OpenLineage events for artifact no. %s.", counter)
|
|
188
198
|
|
|
189
199
|
log.info("OpenLineage has successfully finished processing information about DBT job run.")
|
|
@@ -32,5 +32,4 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
|
|
|
32
32
|
return airflow_version.major, airflow_version.minor, airflow_version.micro
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
AIRFLOW_V_2_10_PLUS = get_base_airflow_version_tuple() >= (2, 10, 0)
|
|
36
35
|
AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
|
|
@@ -26,7 +26,7 @@ from airflow.providers.dbt.cloud.operators.dbt import (
|
|
|
26
26
|
)
|
|
27
27
|
from airflow.providers.dbt.cloud.sensors.dbt import DbtCloudJobRunSensor
|
|
28
28
|
from airflow.providers.standard.operators.empty import EmptyOperator
|
|
29
|
-
from airflow.
|
|
29
|
+
from airflow.sdk import Label
|
|
30
30
|
|
|
31
31
|
from tests_common.test_utils.system_tests import get_test_env_id
|
|
32
32
|
|
|
@@ -33,6 +33,7 @@ from airflow.providers.openlineage.extractors import OperatorLineage
|
|
|
33
33
|
TASK_ID = "dbt_test"
|
|
34
34
|
DAG_ID = "dbt_dag"
|
|
35
35
|
TASK_UUID = "01481cfa-0ff7-3692-9bba-79417cf498c2"
|
|
36
|
+
DAG_UUID = "01481cfa-1a1a-2b2b-3c3c-79417cf498c2"
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
class MockResponse:
|
|
@@ -88,30 +89,48 @@ def get_dbt_artifact(*args, **kwargs):
|
|
|
88
89
|
return None
|
|
89
90
|
|
|
90
91
|
|
|
91
|
-
|
|
92
|
-
"
|
|
92
|
+
@pytest.mark.parametrize(
|
|
93
|
+
"value, is_error",
|
|
94
|
+
[
|
|
95
|
+
("1.99.0", True),
|
|
96
|
+
("2.0.0", True),
|
|
97
|
+
("2.3.0", False),
|
|
98
|
+
("2.99.0", False),
|
|
99
|
+
],
|
|
100
|
+
)
|
|
101
|
+
def test_previous_version_openlineage_provider(value, is_error):
|
|
102
|
+
"""When using OpenLineage, the dbt-cloud provider now depends on openlineage provider >= 2.3"""
|
|
93
103
|
|
|
94
104
|
def _mock_version(package):
|
|
95
105
|
if package == "apache-airflow-providers-openlineage":
|
|
96
|
-
return
|
|
106
|
+
return value
|
|
97
107
|
raise Exception("Unexpected package")
|
|
98
108
|
|
|
99
109
|
mock_operator = MagicMock()
|
|
100
110
|
mock_task_instance = MagicMock()
|
|
101
111
|
|
|
102
112
|
expected_err = (
|
|
103
|
-
"OpenLineage provider version `
|
|
113
|
+
f"OpenLineage provider version `{value}` is lower than required `2.3.0`, "
|
|
104
114
|
"skipping function `generate_openlineage_events_from_dbt_cloud_run` execution"
|
|
105
115
|
)
|
|
106
116
|
|
|
107
|
-
|
|
108
|
-
with
|
|
109
|
-
|
|
117
|
+
if is_error:
|
|
118
|
+
with patch("importlib.metadata.version", side_effect=_mock_version):
|
|
119
|
+
with pytest.raises(AirflowOptionalProviderFeatureException, match=expected_err):
|
|
120
|
+
generate_openlineage_events_from_dbt_cloud_run(mock_operator, mock_task_instance)
|
|
121
|
+
else:
|
|
122
|
+
with patch("importlib.metadata.version", side_effect=_mock_version):
|
|
123
|
+
# Error that would certainly not happen on version checking
|
|
124
|
+
mock_operator.hook.get_job_run.side_effect = ZeroDivisionError("error for test")
|
|
125
|
+
with pytest.raises(ZeroDivisionError, match="error for test"):
|
|
126
|
+
generate_openlineage_events_from_dbt_cloud_run(mock_operator, mock_task_instance)
|
|
110
127
|
|
|
111
128
|
|
|
112
129
|
class TestGenerateOpenLineageEventsFromDbtCloudRun:
|
|
130
|
+
@patch("importlib.metadata.version", return_value="2.3.0")
|
|
113
131
|
@patch("airflow.providers.openlineage.plugins.listener.get_openlineage_listener")
|
|
114
132
|
@patch("airflow.providers.openlineage.plugins.adapter.OpenLineageAdapter.build_task_instance_run_id")
|
|
133
|
+
@patch("airflow.providers.openlineage.plugins.adapter.OpenLineageAdapter.build_dag_run_id")
|
|
115
134
|
@patch.object(DbtCloudHook, "get_job_run")
|
|
116
135
|
@patch.object(DbtCloudHook, "get_project")
|
|
117
136
|
@patch.object(DbtCloudHook, "get_job_run_artifact")
|
|
@@ -120,8 +139,10 @@ class TestGenerateOpenLineageEventsFromDbtCloudRun:
|
|
|
120
139
|
mock_get_job_run_artifact,
|
|
121
140
|
mock_get_project,
|
|
122
141
|
mock_get_job_run,
|
|
142
|
+
mock_build_dag_run_id,
|
|
123
143
|
mock_build_task_instance_run_id,
|
|
124
144
|
mock_get_openlineage_listener,
|
|
145
|
+
mock_version,
|
|
125
146
|
):
|
|
126
147
|
mock_operator = MagicMock(spec=DbtCloudRunJobOperator)
|
|
127
148
|
mock_operator.account_id = None
|
|
@@ -154,17 +175,17 @@ class TestGenerateOpenLineageEventsFromDbtCloudRun:
|
|
|
154
175
|
mock_task_instance = MagicMock()
|
|
155
176
|
mock_task_instance.task_id = TASK_ID
|
|
156
177
|
mock_task_instance.dag_id = DAG_ID
|
|
178
|
+
mock_task_instance.dag_run.clear_number = 0
|
|
157
179
|
|
|
158
|
-
|
|
180
|
+
mock_adapter = MagicMock()
|
|
159
181
|
|
|
160
|
-
|
|
161
|
-
mock_get_openlineage_listener.return_value.adapter
|
|
162
|
-
mock_client
|
|
163
|
-
)
|
|
182
|
+
mock_adapter.emit.side_effect = emit_event
|
|
183
|
+
mock_get_openlineage_listener.return_value.adapter = mock_adapter
|
|
164
184
|
|
|
165
185
|
mock_build_task_instance_run_id.return_value = TASK_UUID
|
|
186
|
+
mock_build_dag_run_id.return_value = DAG_UUID
|
|
166
187
|
generate_openlineage_events_from_dbt_cloud_run(mock_operator, task_instance=mock_task_instance)
|
|
167
|
-
assert
|
|
188
|
+
assert mock_adapter.emit.call_count == 4
|
|
168
189
|
|
|
169
190
|
def test_do_not_raise_error_if_runid_not_set_on_operator(self):
|
|
170
191
|
operator = DbtCloudRunJobOperator(task_id="dbt-job-runid-taskid", job_id=1500)
|