apache-airflow-providers-snowflake 6.5.2rc1__tar.gz → 6.5.3rc1__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.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/PKG-INFO +8 -9
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/README.rst +5 -6
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/changelog.rst +25 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/index.rst +6 -8
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/provider.yaml +2 -1
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/pyproject.toml +4 -4
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/__init__.py +1 -1
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/hooks/snowflake_sql_api.py +15 -1
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/hooks/test_snowflake_sql_api.py +15 -2
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/operators/test_snowflake.py +27 -6
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/connections/snowflake.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/decorators/index.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/decorators/snowpark.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/integration-logos/Snowflake.png +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/operators/copy_into_snowflake.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/operators/index.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/operators/snowflake.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/operators/snowpark.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/LICENSE +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/decorators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/decorators/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/get_provider_info.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/hooks/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/hooks/snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/operators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/operators/snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/operators/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/transfers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/triggers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/triggers/snowflake_trigger.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/utils/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/utils/common.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/utils/openlineage.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/utils/snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/utils/sql_api_generate_jwt.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/src/airflow/providers/snowflake/version_compat.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/example_copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/example_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/example_snowflake_snowflake_op_template_file.sql +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/example_snowpark_decorator.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/system/snowflake/example_snowpark_operator.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/decorators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/decorators/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/hooks/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/hooks/test_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/hooks/test_sql.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/operators/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/operators/test_snowflake_sql.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/operators/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/transfers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/transfers/test_copy_into_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/triggers/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/triggers/test_snowflake.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/utils/__init__.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/utils/test_common.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/utils/test_openlineage.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/utils/test_snowpark.py +0 -0
- {apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/tests/unit/snowflake/utils/test_sql_api_generate_jwt.py +0 -0
{apache_airflow_providers_snowflake-6.5.2rc1 → apache_airflow_providers_snowflake-6.5.3rc1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-snowflake
|
|
3
|
-
Version: 6.5.
|
|
3
|
+
Version: 6.5.3rc1
|
|
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>
|
|
@@ -33,8 +33,8 @@ Requires-Dist: snowflake-snowpark-python>=1.17.0;python_version<'3.12'
|
|
|
33
33
|
Requires-Dist: snowflake-snowpark-python>=1.27.0,<9999;python_version>='3.12' and python_version<'3.13'
|
|
34
34
|
Requires-Dist: apache-airflow-providers-openlineage>=2.3.0rc1 ; extra == "openlineage"
|
|
35
35
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
36
|
-
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
37
|
-
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
36
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html
|
|
37
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.3
|
|
38
38
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
39
39
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
40
40
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -66,9 +66,8 @@ Provides-Extra: openlineage
|
|
|
66
66
|
|
|
67
67
|
Package ``apache-airflow-providers-snowflake``
|
|
68
68
|
|
|
69
|
-
Release: ``6.5.
|
|
69
|
+
Release: ``6.5.3``
|
|
70
70
|
|
|
71
|
-
Release Date: ``|PypiReleaseDate|``
|
|
72
71
|
|
|
73
72
|
`Snowflake <https://www.snowflake.com/>`__
|
|
74
73
|
|
|
@@ -80,12 +79,12 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
|
|
|
80
79
|
are in ``airflow.providers.snowflake`` python package.
|
|
81
80
|
|
|
82
81
|
You can find package information and changelog for the provider
|
|
83
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
82
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/>`_.
|
|
84
83
|
|
|
85
84
|
Installation
|
|
86
85
|
------------
|
|
87
86
|
|
|
88
|
-
You can install this package on top of an existing Airflow
|
|
87
|
+
You can install this package on top of an existing Airflow installation (see ``Requirements`` below
|
|
89
88
|
for the minimum Airflow version supported) via
|
|
90
89
|
``pip install apache-airflow-providers-snowflake``
|
|
91
90
|
|
|
@@ -99,7 +98,7 @@ PIP package Version required
|
|
|
99
98
|
========================================== ========================================================================
|
|
100
99
|
``apache-airflow`` ``>=2.10.0``
|
|
101
100
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
102
|
-
``apache-airflow-providers-common-sql`` ``>=1.
|
|
101
|
+
``apache-airflow-providers-common-sql`` ``>=1.27.5``
|
|
103
102
|
``pandas`` ``>=2.1.2; python_version < "3.13"``
|
|
104
103
|
``pandas`` ``>=2.2.3; python_version >= "3.13"``
|
|
105
104
|
``pyarrow`` ``>=16.1.0; python_version < "3.13"``
|
|
@@ -132,5 +131,5 @@ Dependent package
|
|
|
132
131
|
================================================================================================================== =================
|
|
133
132
|
|
|
134
133
|
The changelog for the provider package can be found in the
|
|
135
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
134
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html>`_.
|
|
136
135
|
|
|
@@ -23,9 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-snowflake``
|
|
25
25
|
|
|
26
|
-
Release: ``6.5.
|
|
26
|
+
Release: ``6.5.3``
|
|
27
27
|
|
|
28
|
-
Release Date: ``|PypiReleaseDate|``
|
|
29
28
|
|
|
30
29
|
`Snowflake <https://www.snowflake.com/>`__
|
|
31
30
|
|
|
@@ -37,12 +36,12 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
|
|
|
37
36
|
are in ``airflow.providers.snowflake`` python package.
|
|
38
37
|
|
|
39
38
|
You can find package information and changelog for the provider
|
|
40
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/>`_.
|
|
41
40
|
|
|
42
41
|
Installation
|
|
43
42
|
------------
|
|
44
43
|
|
|
45
|
-
You can install this package on top of an existing Airflow
|
|
44
|
+
You can install this package on top of an existing Airflow installation (see ``Requirements`` below
|
|
46
45
|
for the minimum Airflow version supported) via
|
|
47
46
|
``pip install apache-airflow-providers-snowflake``
|
|
48
47
|
|
|
@@ -56,7 +55,7 @@ PIP package Version required
|
|
|
56
55
|
========================================== ========================================================================
|
|
57
56
|
``apache-airflow`` ``>=2.10.0``
|
|
58
57
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
59
|
-
``apache-airflow-providers-common-sql`` ``>=1.
|
|
58
|
+
``apache-airflow-providers-common-sql`` ``>=1.27.5``
|
|
60
59
|
``pandas`` ``>=2.1.2; python_version < "3.13"``
|
|
61
60
|
``pandas`` ``>=2.2.3; python_version >= "3.13"``
|
|
62
61
|
``pyarrow`` ``>=16.1.0; python_version < "3.13"``
|
|
@@ -89,4 +88,4 @@ Dependent package
|
|
|
89
88
|
================================================================================================================== =================
|
|
90
89
|
|
|
91
90
|
The changelog for the provider package can be found in the
|
|
92
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
91
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html>`_.
|
|
@@ -27,6 +27,31 @@
|
|
|
27
27
|
Changelog
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
|
+
6.5.3
|
|
31
|
+
.....
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
Release Date: ``|PypiReleaseDate|``
|
|
35
|
+
|
|
36
|
+
Bug Fixes
|
|
37
|
+
~~~~~~~~~
|
|
38
|
+
|
|
39
|
+
* ``fix(snowflake): enhance error message formatting for SQL errors (#54063)``
|
|
40
|
+
|
|
41
|
+
Doc-only
|
|
42
|
+
~~~~~~~~
|
|
43
|
+
|
|
44
|
+
* ``Make term Dag consistent in providers docs (#55101)``
|
|
45
|
+
|
|
46
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
47
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
48
|
+
* ``Remove airflow.models.DAG (#54383)``
|
|
49
|
+
* ``Switch pre-commit to prek (#54258)``
|
|
50
|
+
* ``make bundle_name not nullable (#47592)``
|
|
51
|
+
|
|
52
|
+
.. Review and move the new changes to one of the sections above:
|
|
53
|
+
* ``Fix Airflow 2 reference in README/index of providers (#55240)``
|
|
54
|
+
|
|
30
55
|
6.5.2
|
|
31
56
|
.....
|
|
32
57
|
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
:maxdepth: 1
|
|
58
58
|
:caption: Resources
|
|
59
59
|
|
|
60
|
-
Example
|
|
60
|
+
Example Dags <https://github.com/apache/airflow/tree/providers-snowflake/|version|/providers/snowflake/tests/system/snowflake>
|
|
61
61
|
PyPI Repository <https://pypi.org/project/apache-airflow-providers-snowflake/>
|
|
62
62
|
Installing from sources <installing-providers-from-sources>
|
|
63
63
|
|
|
@@ -78,9 +78,7 @@ apache-airflow-providers-snowflake package
|
|
|
78
78
|
`Snowflake <https://www.snowflake.com/>`__
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
Release: 6.5.
|
|
82
|
-
|
|
83
|
-
Release Date: ``|PypiReleaseDate|``
|
|
81
|
+
Release: 6.5.3
|
|
84
82
|
|
|
85
83
|
Provider package
|
|
86
84
|
----------------
|
|
@@ -91,7 +89,7 @@ All classes for this package are included in the ``airflow.providers.snowflake``
|
|
|
91
89
|
Installation
|
|
92
90
|
------------
|
|
93
91
|
|
|
94
|
-
You can install this package on top of an existing Airflow
|
|
92
|
+
You can install this package on top of an existing Airflow installation via
|
|
95
93
|
``pip install apache-airflow-providers-snowflake``.
|
|
96
94
|
For the minimum Airflow version supported, see ``Requirements`` below.
|
|
97
95
|
|
|
@@ -105,7 +103,7 @@ PIP package Version required
|
|
|
105
103
|
========================================== ========================================================================
|
|
106
104
|
``apache-airflow`` ``>=2.10.0``
|
|
107
105
|
``apache-airflow-providers-common-compat`` ``>=1.6.0``
|
|
108
|
-
``apache-airflow-providers-common-sql`` ``>=1.
|
|
106
|
+
``apache-airflow-providers-common-sql`` ``>=1.27.5``
|
|
109
107
|
``pandas`` ``>=2.1.2; python_version < "3.13"``
|
|
110
108
|
``pandas`` ``>=2.2.3; python_version >= "3.13"``
|
|
111
109
|
``pyarrow`` ``>=16.1.0; python_version < "3.13"``
|
|
@@ -143,5 +141,5 @@ Downloading official packages
|
|
|
143
141
|
You can download officially released packages and verify their checksums and signatures from the
|
|
144
142
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
145
143
|
|
|
146
|
-
* `The apache-airflow-providers-snowflake 6.5.
|
|
147
|
-
* `The apache-airflow-providers-snowflake 6.5.
|
|
144
|
+
* `The apache-airflow-providers-snowflake 6.5.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz.sha512>`__)
|
|
145
|
+
* `The apache-airflow-providers-snowflake 6.5.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl.sha512>`__)
|
|
@@ -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: 1756877547
|
|
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.5.3
|
|
31
32
|
- 6.5.2
|
|
32
33
|
- 6.5.1
|
|
33
34
|
- 6.5.0
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-snowflake"
|
|
28
|
-
version = "6.5.
|
|
28
|
+
version = "6.5.3rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-snowflake for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -54,7 +54,7 @@ requires-python = ">=3.10"
|
|
|
54
54
|
|
|
55
55
|
# The dependencies should be modified in place in the generated file.
|
|
56
56
|
# Any change in the dependencies is preserved when the file is regenerated
|
|
57
|
-
# Make sure to run ``
|
|
57
|
+
# Make sure to run ``prek 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
60
|
"apache-airflow>=2.10.0rc1",
|
|
@@ -117,8 +117,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
117
117
|
apache-airflow-providers-standard = {workspace = true}
|
|
118
118
|
|
|
119
119
|
[project.urls]
|
|
120
|
-
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
121
|
-
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.
|
|
120
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.3"
|
|
121
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html"
|
|
122
122
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
123
123
|
"Source Code" = "https://github.com/apache/airflow"
|
|
124
124
|
"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.5.
|
|
32
|
+
__version__ = "6.5.3"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.10.0"
|
|
@@ -288,7 +288,21 @@ class SnowflakeSqlApiHook(SnowflakeHook):
|
|
|
288
288
|
if status_code == 202:
|
|
289
289
|
return {"status": "running", "message": "Query statements are still running"}
|
|
290
290
|
if status_code == 422:
|
|
291
|
-
|
|
291
|
+
error_message = resp.get("message", "Unknown error occurred")
|
|
292
|
+
error_details = []
|
|
293
|
+
if code := resp.get("code"):
|
|
294
|
+
error_details.append(f"Code: {code}")
|
|
295
|
+
if sql_state := resp.get("sqlState"):
|
|
296
|
+
error_details.append(f"SQL State: {sql_state}")
|
|
297
|
+
if statement_handle := resp.get("statementHandle"):
|
|
298
|
+
error_details.append(f"Statement Handle: {statement_handle}")
|
|
299
|
+
|
|
300
|
+
if error_details:
|
|
301
|
+
enhanced_message = f"{error_message} ({', '.join(error_details)})"
|
|
302
|
+
else:
|
|
303
|
+
enhanced_message = error_message
|
|
304
|
+
|
|
305
|
+
return {"status": "error", "message": enhanced_message}
|
|
292
306
|
if status_code == 200:
|
|
293
307
|
if resp_statement_handles := resp.get("statementHandles"):
|
|
294
308
|
statement_handles = resp_statement_handles
|
|
@@ -618,7 +618,20 @@ class TestSnowflakeSqlApiHook:
|
|
|
618
618
|
},
|
|
619
619
|
),
|
|
620
620
|
(202, {}, {"status": "running", "message": "Query statements are still running"}),
|
|
621
|
-
(422, {"
|
|
621
|
+
(422, {"message": "test"}, {"status": "error", "message": "test"}),
|
|
622
|
+
(
|
|
623
|
+
422,
|
|
624
|
+
{
|
|
625
|
+
"message": "SQL compilation error",
|
|
626
|
+
"code": "000904",
|
|
627
|
+
"sqlState": "42000",
|
|
628
|
+
"statementHandle": "handle123",
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"status": "error",
|
|
632
|
+
"message": "SQL compilation error (Code: 000904, SQL State: 42000, Statement Handle: handle123)",
|
|
633
|
+
},
|
|
634
|
+
),
|
|
622
635
|
(404, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
|
|
623
636
|
],
|
|
624
637
|
)
|
|
@@ -678,7 +691,7 @@ class TestSnowflakeSqlApiHook:
|
|
|
678
691
|
},
|
|
679
692
|
),
|
|
680
693
|
(202, {}, {"status": "running", "message": "Query statements are still running"}),
|
|
681
|
-
(422, {"
|
|
694
|
+
(422, {"message": "test"}, {"status": "error", "message": "test"}),
|
|
682
695
|
(404, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
|
|
683
696
|
],
|
|
684
697
|
)
|
|
@@ -36,10 +36,16 @@ from airflow.providers.snowflake.operators.snowflake import (
|
|
|
36
36
|
SnowflakeValueCheckOperator,
|
|
37
37
|
)
|
|
38
38
|
from airflow.providers.snowflake.triggers.snowflake_trigger import SnowflakeSqlApiTrigger
|
|
39
|
-
from airflow.utils import timezone # type: ignore[attr-defined]
|
|
40
39
|
from airflow.utils.types import DagRunType
|
|
41
40
|
|
|
42
|
-
from tests_common.test_utils.
|
|
41
|
+
from tests_common.test_utils.dag import sync_dag_to_db
|
|
42
|
+
from tests_common.test_utils.db import clear_db_dag_bundles, clear_db_dags, clear_db_runs
|
|
43
|
+
from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS, AIRFLOW_V_3_1_PLUS
|
|
44
|
+
|
|
45
|
+
if AIRFLOW_V_3_1_PLUS:
|
|
46
|
+
from airflow.sdk import timezone
|
|
47
|
+
else:
|
|
48
|
+
from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
|
|
43
49
|
|
|
44
50
|
DEFAULT_DATE = timezone.datetime(2015, 1, 1)
|
|
45
51
|
DEFAULT_DATE_ISO = DEFAULT_DATE.isoformat()
|
|
@@ -235,10 +241,8 @@ def create_context(task, dag=None):
|
|
|
235
241
|
logical_date = timezone.datetime(2022, 1, 1, 1, 0, 0, tzinfo=tzinfo)
|
|
236
242
|
if AIRFLOW_V_3_0_PLUS:
|
|
237
243
|
from airflow.models.dag_version import DagVersion
|
|
238
|
-
from airflow.models.serialized_dag import SerializedDagModel
|
|
239
244
|
|
|
240
|
-
dag
|
|
241
|
-
SerializedDagModel.write_dag(dag, bundle_name="testing")
|
|
245
|
+
sync_dag_to_db(dag)
|
|
242
246
|
dag_version = DagVersion.get_latest_version(dag.dag_id)
|
|
243
247
|
task_instance = TaskInstance(task=task, run_id="test_run_id", dag_version_id=dag_version.id)
|
|
244
248
|
dag_run = DagRun(
|
|
@@ -274,6 +278,20 @@ def create_context(task, dag=None):
|
|
|
274
278
|
|
|
275
279
|
@pytest.mark.db_test
|
|
276
280
|
class TestSnowflakeSqlApiOperator:
|
|
281
|
+
@pytest.fixture(autouse=True)
|
|
282
|
+
def setup_tests(self):
|
|
283
|
+
clear_db_dags()
|
|
284
|
+
clear_db_runs()
|
|
285
|
+
if AIRFLOW_V_3_0_PLUS:
|
|
286
|
+
clear_db_dag_bundles()
|
|
287
|
+
|
|
288
|
+
yield
|
|
289
|
+
|
|
290
|
+
clear_db_dags()
|
|
291
|
+
clear_db_runs()
|
|
292
|
+
if AIRFLOW_V_3_0_PLUS:
|
|
293
|
+
clear_db_dag_bundles()
|
|
294
|
+
|
|
277
295
|
@pytest.fixture
|
|
278
296
|
def mock_execute_query(self):
|
|
279
297
|
with mock.patch(
|
|
@@ -328,7 +346,10 @@ class TestSnowflakeSqlApiOperator:
|
|
|
328
346
|
with pytest.raises(AirflowException):
|
|
329
347
|
operator.execute(context=None)
|
|
330
348
|
|
|
331
|
-
@pytest.mark.parametrize(
|
|
349
|
+
@pytest.mark.parametrize(
|
|
350
|
+
"mock_sql, statement_count",
|
|
351
|
+
[pytest.param(SQL_MULTIPLE_STMTS, 4, id="multi"), pytest.param(SINGLE_STMT, 1, id="single")],
|
|
352
|
+
)
|
|
332
353
|
@mock.patch("airflow.providers.snowflake.hooks.snowflake_sql_api.SnowflakeSqlApiHook.execute_query")
|
|
333
354
|
def test_snowflake_sql_api_execute_operator_async(
|
|
334
355
|
self, mock_execute_query, mock_sql, statement_count, mock_get_sql_api_query_status
|
|
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
|