apache-airflow-providers-snowflake 6.3.0rc2__tar.gz → 6.3.1__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.

Files changed (71) hide show
  1. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/PKG-INFO +10 -10
  2. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/README.rst +3 -3
  3. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/changelog.rst +23 -0
  4. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/index.rst +3 -3
  5. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/operators/snowflake.rst +2 -5
  6. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/provider.yaml +2 -1
  7. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/pyproject.toml +7 -7
  8. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/__init__.py +1 -1
  9. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/utils/openlineage.py +6 -6
  10. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/utils/test_openlineage.py +18 -18
  11. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/.latest-doc-only-change.txt +0 -0
  12. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/commits.rst +0 -0
  13. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/conf.py +0 -0
  14. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/connections/snowflake.rst +0 -0
  15. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/decorators/index.rst +0 -0
  16. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/decorators/snowpark.rst +0 -0
  17. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/installing-providers-from-sources.rst +0 -0
  18. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/integration-logos/Snowflake.png +0 -0
  19. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/operators/copy_into_snowflake.rst +0 -0
  20. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/operators/index.rst +0 -0
  21. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/operators/snowpark.rst +0 -0
  22. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/docs/security.rst +0 -0
  23. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/__init__.py +0 -0
  24. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/__init__.py +0 -0
  25. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/LICENSE +0 -0
  26. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/decorators/__init__.py +0 -0
  27. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/decorators/snowpark.py +0 -0
  28. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/get_provider_info.py +0 -0
  29. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/hooks/__init__.py +0 -0
  30. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/hooks/snowflake.py +0 -0
  31. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/hooks/snowflake_sql_api.py +0 -0
  32. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/operators/__init__.py +0 -0
  33. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/operators/snowflake.py +0 -0
  34. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/operators/snowpark.py +0 -0
  35. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/transfers/__init__.py +0 -0
  36. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py +0 -0
  37. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/triggers/__init__.py +0 -0
  38. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/triggers/snowflake_trigger.py +0 -0
  39. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/utils/__init__.py +0 -0
  40. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/utils/common.py +0 -0
  41. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/utils/snowpark.py +0 -0
  42. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/utils/sql_api_generate_jwt.py +0 -0
  43. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/src/airflow/providers/snowflake/version_compat.py +0 -0
  44. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/conftest.py +0 -0
  45. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/__init__.py +0 -0
  46. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/__init__.py +0 -0
  47. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/example_copy_into_snowflake.py +0 -0
  48. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/example_snowflake.py +0 -0
  49. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/example_snowflake_snowflake_op_template_file.sql +0 -0
  50. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/example_snowpark_decorator.py +0 -0
  51. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/system/snowflake/example_snowpark_operator.py +0 -0
  52. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/__init__.py +0 -0
  53. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/__init__.py +0 -0
  54. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/decorators/__init__.py +0 -0
  55. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/decorators/test_snowpark.py +0 -0
  56. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/hooks/__init__.py +0 -0
  57. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/hooks/test_snowflake.py +0 -0
  58. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/hooks/test_snowflake_sql_api.py +0 -0
  59. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/hooks/test_sql.py +0 -0
  60. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/operators/__init__.py +0 -0
  61. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/operators/test_snowflake.py +0 -0
  62. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/operators/test_snowflake_sql.py +0 -0
  63. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/operators/test_snowpark.py +0 -0
  64. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/transfers/__init__.py +0 -0
  65. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/transfers/test_copy_into_snowflake.py +0 -0
  66. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/triggers/__init__.py +0 -0
  67. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/triggers/test_snowflake.py +0 -0
  68. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/utils/__init__.py +0 -0
  69. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/utils/test_common.py +0 -0
  70. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/utils/test_snowpark.py +0 -0
  71. {apache_airflow_providers_snowflake-6.3.0rc2 → apache_airflow_providers_snowflake-6.3.1}/tests/unit/snowflake/utils/test_sql_api_generate_jwt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-snowflake
3
- Version: 6.3.0rc2
3
+ Version: 6.3.1
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>
@@ -20,18 +20,18 @@ 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.10.0rc1
24
- Requires-Dist: apache-airflow-providers-common-compat>=1.6.0rc1
25
- Requires-Dist: apache-airflow-providers-common-sql>=1.21.0rc1
23
+ Requires-Dist: apache-airflow>=2.10.0
24
+ Requires-Dist: apache-airflow-providers-common-compat>=1.6.0
25
+ Requires-Dist: apache-airflow-providers-common-sql>=1.21.0
26
26
  Requires-Dist: pandas>=2.1.2,<2.2
27
27
  Requires-Dist: pyarrow>=14.0.1
28
28
  Requires-Dist: snowflake-connector-python>=3.7.1
29
29
  Requires-Dist: snowflake-sqlalchemy>=1.4.0
30
30
  Requires-Dist: snowflake-snowpark-python>=1.17.0;python_version<'3.12'
31
- Requires-Dist: apache-airflow-providers-openlineage>=2.3.0rc1 ; extra == "openlineage"
31
+ Requires-Dist: apache-airflow-providers-openlineage>=2.3.0 ; 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.0/changelog.html
34
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.0
33
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1/changelog.html
34
+ Project-URL: Documentation, https://airflow.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.0``
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.0/>`_.
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.0/changelog.html>`_.
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.0``
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.0/>`_.
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.0/changelog.html>`_.
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.0
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.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0.tar.gz.sha512>`__)
142
- * `The apache-airflow-providers-snowflake 6.3.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.3.0-py3-none-any.whl.sha512>`__)
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 to connect to Snowflake
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: 1746344752
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.0rc2"
28
+ version = "6.3.1"
29
29
  description = "Provider package apache-airflow-providers-snowflake for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -57,9 +57,9 @@ 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.10.0rc1",
61
- "apache-airflow-providers-common-compat>=1.6.0rc1",
62
- "apache-airflow-providers-common-sql>=1.21.0rc1",
60
+ "apache-airflow>=2.10.0",
61
+ "apache-airflow-providers-common-compat>=1.6.0",
62
+ "apache-airflow-providers-common-sql>=1.21.0",
63
63
  # In pandas 2.2 minimal version of the sqlalchemy is 2.0
64
64
  # https://pandas.pydata.org/docs/whatsnew/v2.2.0.html#increased-minimum-versions-for-dependencies
65
65
  # However Airflow not fully supports it yet: https://github.com/apache/airflow/issues/28723
@@ -75,7 +75,7 @@ dependencies = [
75
75
  # Any change in the dependencies is preserved when the file is regenerated
76
76
  [project.optional-dependencies]
77
77
  "openlineage" = [
78
- "apache-airflow-providers-openlineage>=2.3.0rc1"
78
+ "apache-airflow-providers-openlineage>=2.3.0"
79
79
  ]
80
80
 
81
81
  [dependency-groups]
@@ -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.0"
120
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.0/changelog.html"
119
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.3.1"
120
+ "Changelog" = "https://airflow.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.0"
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 = str(task_instance.state) if hasattr(task_instance, "state") else ""
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
- # TODO(potiuk): likely typing here needs to be fixed
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( # type: ignore[assignment]
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
- client = get_openlineage_listener().adapter.get_or_create_openlineage_client()
355
+ adapter = get_openlineage_listener().adapter
356
356
  for event in events:
357
- client.emit(event)
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
- fake_client = mock.MagicMock()
355
- fake_client.emit = mock.MagicMock()
354
+ fake_adapter = mock.MagicMock()
355
+ fake_adapter.emit = mock.MagicMock()
356
356
  fake_listener = mock.MagicMock()
357
- fake_listener.adapter.get_or_create_openlineage_client.return_value = fake_client
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 fake_client.emit.call_count == 6 # Expect two events per query.
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 fake_client.emit.call_args_list == expected_calls
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
- fake_client = mock.MagicMock()
577
- fake_client.emit = mock.MagicMock()
576
+ fake_adapter = mock.MagicMock()
577
+ fake_adapter.emit = mock.MagicMock()
578
578
  fake_listener = mock.MagicMock()
579
- fake_listener.adapter.get_or_create_openlineage_client.return_value = fake_client
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 fake_client.emit.call_count == 2 # Expect two events per query.
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 fake_client.emit.call_args_list == expected_calls
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
- fake_client = mock.MagicMock()
669
- fake_client.emit = mock.MagicMock()
668
+ fake_adapter = mock.MagicMock()
669
+ fake_adapter.emit = mock.MagicMock()
670
670
  fake_listener = mock.MagicMock()
671
- fake_listener.adapter.get_or_create_openlineage_client.return_value = fake_client
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
- fake_client.emit.assert_not_called() # No events should be emitted
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
- fake_client = mock.MagicMock()
694
- fake_client.emit = mock.MagicMock()
693
+ fake_adapter = mock.MagicMock()
694
+ fake_adapter.emit = mock.MagicMock()
695
695
  fake_listener = mock.MagicMock()
696
- fake_listener.adapter.get_or_create_openlineage_client.return_value = fake_client
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
- fake_client.emit.assert_not_called() # No events should be emitted
714
+ fake_adapter.emit.assert_not_called() # No events should be emitted