apache-airflow-providers-snowflake 6.3.0rc2__tar.gz → 6.3.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-snowflake might be problematic. Click here for more details.
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/PKG-INFO +6 -6
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/README.rst +3 -3
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/changelog.rst +23 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/index.rst +3 -3
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/operators/snowflake.rst +2 -5
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/provider.yaml +2 -1
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/pyproject.toml +3 -3
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/__init__.py +1 -1
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/utils/openlineage.py +6 -6
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/utils/test_openlineage.py +18 -18
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/connections/snowflake.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/decorators/index.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/decorators/snowpark.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/integration-logos/Snowflake.png +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/operators/copy_into_snowflake.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/operators/index.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/operators/snowpark.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/LICENSE +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/decorators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/decorators/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/get_provider_info.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/hooks/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/hooks/snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/hooks/snowflake_sql_api.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/operators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/operators/snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/operators/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/transfers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/triggers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/triggers/snowflake_trigger.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/utils/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/utils/common.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/utils/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/utils/sql_api_generate_jwt.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/src/airflow/providers/snowflake/version_compat.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/example_copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/example_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/example_snowflake_snowflake_op_template_file.sql +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/example_snowpark_decorator.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/system/snowflake/example_snowpark_operator.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/decorators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/decorators/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/hooks/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/hooks/test_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/hooks/test_snowflake_sql_api.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/hooks/test_sql.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/operators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/operators/test_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/operators/test_snowflake_sql.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/operators/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/transfers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/transfers/test_copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/triggers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/triggers/test_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/utils/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/utils/test_common.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/utils/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/tests/unit/snowflake/utils/test_sql_api_generate_jwt.py +0 -0
{apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1rc1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-snowflake
|
|
3
|
-
Version: 6.3.
|
|
3
|
+
Version: 6.3.1rc1
|
|
4
4
|
Summary: Provider package apache-airflow-providers-snowflake for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,snowflake,airflow,integration
|
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
@@ -30,8 +30,8 @@ Requires-Dist: snowflake-sqlalchemy>=1.4.0
|
|
|
30
30
|
Requires-Dist: snowflake-snowpark-python>=1.17.0;python_version<'3.12'
|
|
31
31
|
Requires-Dist: apache-airflow-providers-openlineage>=2.3.0rc1 ; extra == "openlineage"
|
|
32
32
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
33
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
34
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
33
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/changelog.html
|
|
34
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.3.1
|
|
35
35
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
36
36
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
37
37
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -63,7 +63,7 @@ Provides-Extra: openlineage
|
|
|
63
63
|
|
|
64
64
|
Package ``apache-airflow-providers-snowflake``
|
|
65
65
|
|
|
66
|
-
Release: ``6.3.
|
|
66
|
+
Release: ``6.3.1``
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
`Snowflake <https://www.snowflake.com/>`__
|
|
@@ -76,7 +76,7 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
|
|
|
76
76
|
are in ``airflow.providers.snowflake`` python package.
|
|
77
77
|
|
|
78
78
|
You can find package information and changelog for the provider
|
|
79
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
79
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/>`_.
|
|
80
80
|
|
|
81
81
|
Installation
|
|
82
82
|
------------
|
|
@@ -125,5 +125,5 @@ Dependent package
|
|
|
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-snowflake/6.3.
|
|
128
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/changelog.html>`_.
|
|
129
129
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-snowflake``
|
|
25
25
|
|
|
26
|
-
Release: ``6.3.
|
|
26
|
+
Release: ``6.3.1``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
`Snowflake <https://www.snowflake.com/>`__
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
|
|
|
36
36
|
are in ``airflow.providers.snowflake`` 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-snowflake/6.3.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -85,4 +85,4 @@ Dependent package
|
|
|
85
85
|
================================================================================================================== =================
|
|
86
86
|
|
|
87
87
|
The changelog for the provider package can be found in the
|
|
88
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
88
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/changelog.html>`_.
|
|
@@ -27,6 +27,29 @@
|
|
|
27
27
|
Changelog
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
|
+
6.3.1
|
|
31
|
+
.....
|
|
32
|
+
|
|
33
|
+
Bug Fixes
|
|
34
|
+
~~~~~~~~~
|
|
35
|
+
|
|
36
|
+
* ``fix: Adjust OpenLineage task state check for Airflow 3 (#50380)``
|
|
37
|
+
|
|
38
|
+
Misc
|
|
39
|
+
~~~~
|
|
40
|
+
|
|
41
|
+
* ``nit: Switch to emitting OL events with adapter and not client directly (#50398)``
|
|
42
|
+
|
|
43
|
+
Doc-only
|
|
44
|
+
~~~~~~~~
|
|
45
|
+
|
|
46
|
+
* ``docs: remove stale warning about SnowflakeOperator (#50450)``
|
|
47
|
+
|
|
48
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
49
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
50
|
+
* ``Fix Breeze unit test (#50395)``
|
|
51
|
+
* ``Use non-deprecated context in tests for Airflow 3 (#50391)``
|
|
52
|
+
|
|
30
53
|
6.3.0
|
|
31
54
|
.....
|
|
32
55
|
|
|
@@ -78,7 +78,7 @@ apache-airflow-providers-snowflake package
|
|
|
78
78
|
`Snowflake <https://www.snowflake.com/>`__
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
Release: 6.3.
|
|
81
|
+
Release: 6.3.1
|
|
82
82
|
|
|
83
83
|
Provider package
|
|
84
84
|
----------------
|
|
@@ -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-snowflake 6.3.
|
|
142
|
-
* `The apache-airflow-providers-snowflake 6.3.
|
|
141
|
+
* `The apache-airflow-providers-snowflake 6.3.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1.tar.gz.sha512>`__)
|
|
142
|
+
* `The apache-airflow-providers-snowflake 6.3.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.1-py3-none-any.whl.sha512>`__)
|
|
@@ -17,15 +17,12 @@
|
|
|
17
17
|
|
|
18
18
|
.. _howto/operator:SnowflakeOperator:
|
|
19
19
|
|
|
20
|
-
SQLExecuteQueryOperator
|
|
21
|
-
|
|
20
|
+
SQLExecuteQueryOperator for Snowflake
|
|
21
|
+
=====================================
|
|
22
22
|
|
|
23
23
|
Use the :class:`SQLExecuteQueryOperator <airflow.providers.common.sql.operators.sql>` to execute
|
|
24
24
|
SQL commands in a `Snowflake <https://docs.snowflake.com/en/>`__ database.
|
|
25
25
|
|
|
26
|
-
.. warning::
|
|
27
|
-
Previously, SnowflakeOperator was used to perform this kind of operation. But at the moment SnowflakeOperator is deprecated and will be removed in future versions of the provider. Please consider to switch to SQLExecuteQueryOperator as soon as possible.
|
|
28
|
-
|
|
29
26
|
|
|
30
27
|
Using the Operator
|
|
31
28
|
^^^^^^^^^^^^^^^^^^
|
|
@@ -22,12 +22,13 @@ description: |
|
|
|
22
22
|
`Snowflake <https://www.snowflake.com/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1747133792
|
|
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
|
+
- 6.3.1
|
|
31
32
|
- 6.3.0
|
|
32
33
|
- 6.2.2
|
|
33
34
|
- 6.2.1
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-snowflake"
|
|
28
|
-
version = "6.3.
|
|
28
|
+
version = "6.3.1rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-snowflake for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -116,8 +116,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
116
116
|
apache-airflow-providers-standard = {workspace = true}
|
|
117
117
|
|
|
118
118
|
[project.urls]
|
|
119
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
120
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.
|
|
119
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.3.1"
|
|
120
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/changelog.html"
|
|
121
121
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
122
122
|
"Source Code" = "https://github.com/apache/airflow"
|
|
123
123
|
"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__ = "6.3.
|
|
32
|
+
__version__ = "6.3.1"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.10.0"
|
|
@@ -280,6 +280,7 @@ def emit_openlineage_events_for_snowflake_queries(
|
|
|
280
280
|
from airflow.providers.common.compat.openlineage.facet import (
|
|
281
281
|
ErrorMessageRunFacet,
|
|
282
282
|
ExternalQueryRunFacet,
|
|
283
|
+
RunFacet,
|
|
283
284
|
SQLJobFacet,
|
|
284
285
|
)
|
|
285
286
|
from airflow.providers.openlineage.conf import namespace
|
|
@@ -301,7 +302,7 @@ def emit_openlineage_events_for_snowflake_queries(
|
|
|
301
302
|
# If real metadata is unavailable, we send events with eventTime=now
|
|
302
303
|
default_event_time = timezone.utcnow()
|
|
303
304
|
# If no query metadata is provided, we use task_instance's state when checking for success
|
|
304
|
-
default_state =
|
|
305
|
+
default_state = task_instance.state.value if hasattr(task_instance, "state") else ""
|
|
305
306
|
|
|
306
307
|
common_run_facets = {"parent": _get_parent_run_facet(task_instance)}
|
|
307
308
|
common_job_facets: dict[str, JobFacet] = {
|
|
@@ -324,12 +325,11 @@ def emit_openlineage_events_for_snowflake_queries(
|
|
|
324
325
|
query_metadata if query_metadata else "not found",
|
|
325
326
|
)
|
|
326
327
|
|
|
327
|
-
|
|
328
|
-
query_specific_run_facets = { # type : ignore[assignment]
|
|
328
|
+
query_specific_run_facets: dict[str, RunFacet] = {
|
|
329
329
|
"externalQuery": ExternalQueryRunFacet(externalQueryId=query_id, source=query_source_namespace)
|
|
330
330
|
}
|
|
331
331
|
if query_metadata.get("ERROR_MESSAGE"):
|
|
332
|
-
query_specific_run_facets["error"] = ErrorMessageRunFacet(
|
|
332
|
+
query_specific_run_facets["error"] = ErrorMessageRunFacet(
|
|
333
333
|
message=f"{query_metadata.get('ERROR_CODE')} : {query_metadata['ERROR_MESSAGE']}",
|
|
334
334
|
programmingLanguage="SQL",
|
|
335
335
|
)
|
|
@@ -352,9 +352,9 @@ def emit_openlineage_events_for_snowflake_queries(
|
|
|
352
352
|
events.extend(event_batch)
|
|
353
353
|
|
|
354
354
|
log.debug("Generated %s OpenLineage events; emitting now.", len(events))
|
|
355
|
-
|
|
355
|
+
adapter = get_openlineage_listener().adapter
|
|
356
356
|
for event in events:
|
|
357
|
-
|
|
357
|
+
adapter.emit(event)
|
|
358
358
|
|
|
359
359
|
log.info("OpenLineage has successfully finished processing information about Snowflake queries.")
|
|
360
360
|
return
|
|
@@ -351,10 +351,10 @@ def test_emit_openlineage_events_for_snowflake_queries_with_hook(mock_now, mock_
|
|
|
351
351
|
additional_run_facets = {"custom_run": "value_run"}
|
|
352
352
|
additional_job_facets = {"custom_job": "value_job"}
|
|
353
353
|
|
|
354
|
-
|
|
355
|
-
|
|
354
|
+
fake_adapter = mock.MagicMock()
|
|
355
|
+
fake_adapter.emit = mock.MagicMock()
|
|
356
356
|
fake_listener = mock.MagicMock()
|
|
357
|
-
fake_listener.adapter
|
|
357
|
+
fake_listener.adapter = fake_adapter
|
|
358
358
|
|
|
359
359
|
with (
|
|
360
360
|
mock.patch(
|
|
@@ -376,7 +376,7 @@ def test_emit_openlineage_events_for_snowflake_queries_with_hook(mock_now, mock_
|
|
|
376
376
|
)
|
|
377
377
|
|
|
378
378
|
assert query_ids == original_query_ids # Verify that the input query_ids list is unchanged.
|
|
379
|
-
assert
|
|
379
|
+
assert fake_adapter.emit.call_count == 6 # Expect two events per query.
|
|
380
380
|
|
|
381
381
|
expected_common_job_facets = {
|
|
382
382
|
"jobType": job_type_job.JobTypeJobFacet(
|
|
@@ -539,7 +539,7 @@ def test_emit_openlineage_events_for_snowflake_queries_with_hook(mock_now, mock_
|
|
|
539
539
|
),
|
|
540
540
|
]
|
|
541
541
|
|
|
542
|
-
assert
|
|
542
|
+
assert fake_adapter.emit.call_args_list == expected_calls
|
|
543
543
|
|
|
544
544
|
|
|
545
545
|
@mock.patch("importlib.metadata.version", return_value="2.3.0")
|
|
@@ -573,10 +573,10 @@ def test_emit_openlineage_events_for_snowflake_queries_without_hook(
|
|
|
573
573
|
additional_run_facets = {"custom_run": "value_run"}
|
|
574
574
|
additional_job_facets = {"custom_job": "value_job"}
|
|
575
575
|
|
|
576
|
-
|
|
577
|
-
|
|
576
|
+
fake_adapter = mock.MagicMock()
|
|
577
|
+
fake_adapter.emit = mock.MagicMock()
|
|
578
578
|
fake_listener = mock.MagicMock()
|
|
579
|
-
fake_listener.adapter
|
|
579
|
+
fake_listener.adapter = fake_adapter
|
|
580
580
|
|
|
581
581
|
with mock.patch(
|
|
582
582
|
"airflow.providers.openlineage.plugins.listener.get_openlineage_listener",
|
|
@@ -592,7 +592,7 @@ def test_emit_openlineage_events_for_snowflake_queries_without_hook(
|
|
|
592
592
|
)
|
|
593
593
|
|
|
594
594
|
assert query_ids == original_query_ids # Verify that the input query_ids list is unchanged.
|
|
595
|
-
assert
|
|
595
|
+
assert fake_adapter.emit.call_count == 2 # Expect two events per query.
|
|
596
596
|
|
|
597
597
|
expected_common_job_facets = {
|
|
598
598
|
"jobType": job_type_job.JobTypeJobFacet(
|
|
@@ -657,7 +657,7 @@ def test_emit_openlineage_events_for_snowflake_queries_without_hook(
|
|
|
657
657
|
),
|
|
658
658
|
]
|
|
659
659
|
|
|
660
|
-
assert
|
|
660
|
+
assert fake_adapter.emit.call_args_list == expected_calls
|
|
661
661
|
|
|
662
662
|
|
|
663
663
|
@mock.patch("importlib.metadata.version", return_value="2.3.0")
|
|
@@ -665,10 +665,10 @@ def test_emit_openlineage_events_for_snowflake_queries_without_query_ids(mock_ve
|
|
|
665
665
|
query_ids = []
|
|
666
666
|
original_query_ids = copy.deepcopy(query_ids)
|
|
667
667
|
|
|
668
|
-
|
|
669
|
-
|
|
668
|
+
fake_adapter = mock.MagicMock()
|
|
669
|
+
fake_adapter.emit = mock.MagicMock()
|
|
670
670
|
fake_listener = mock.MagicMock()
|
|
671
|
-
fake_listener.adapter
|
|
671
|
+
fake_listener.adapter = fake_adapter
|
|
672
672
|
|
|
673
673
|
with mock.patch(
|
|
674
674
|
"airflow.providers.openlineage.plugins.listener.get_openlineage_listener",
|
|
@@ -681,7 +681,7 @@ def test_emit_openlineage_events_for_snowflake_queries_without_query_ids(mock_ve
|
|
|
681
681
|
)
|
|
682
682
|
|
|
683
683
|
assert query_ids == original_query_ids # Verify that the input query_ids list is unchanged.
|
|
684
|
-
|
|
684
|
+
fake_adapter.emit.assert_not_called() # No events should be emitted
|
|
685
685
|
|
|
686
686
|
|
|
687
687
|
# emit_openlineage_events_for_snowflake_queries requires OL provider 2.3.0
|
|
@@ -690,10 +690,10 @@ def test_emit_openlineage_events_with_old_openlineage_provider(mock_version):
|
|
|
690
690
|
query_ids = ["q1", "q2"]
|
|
691
691
|
original_query_ids = copy.deepcopy(query_ids)
|
|
692
692
|
|
|
693
|
-
|
|
694
|
-
|
|
693
|
+
fake_adapter = mock.MagicMock()
|
|
694
|
+
fake_adapter.emit = mock.MagicMock()
|
|
695
695
|
fake_listener = mock.MagicMock()
|
|
696
|
-
fake_listener.adapter
|
|
696
|
+
fake_listener.adapter = fake_adapter
|
|
697
697
|
|
|
698
698
|
with mock.patch(
|
|
699
699
|
"airflow.providers.openlineage.plugins.listener.get_openlineage_listener",
|
|
@@ -711,4 +711,4 @@ def test_emit_openlineage_events_with_old_openlineage_provider(mock_version):
|
|
|
711
711
|
task_instance=None,
|
|
712
712
|
)
|
|
713
713
|
assert query_ids == original_query_ids # Verify that the input query_ids list is unchanged.
|
|
714
|
-
|
|
714
|
+
fake_adapter.emit.assert_not_called() # No events should be emitted
|
|
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
|
|
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
|