apache-airflow-providers-common-sql 1.27.3__tar.gz → 1.27.4rc1__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.
Files changed (76) hide show
  1. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/PKG-INFO +12 -10
  2. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/README.rst +5 -4
  3. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/changelog.rst +20 -0
  4. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/index.rst +5 -3
  5. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/provider.yaml +2 -1
  6. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/pyproject.toml +9 -6
  7. {apache_airflow_providers_common_sql-1.27.3/src/airflow/providers/common → apache_airflow_providers_common_sql-1.27.4rc1/src/airflow}/__init__.py +1 -1
  8. {apache_airflow_providers_common_sql-1.27.3/tests/system → apache_airflow_providers_common_sql-1.27.4rc1/src/airflow/providers}/__init__.py +1 -1
  9. {apache_airflow_providers_common_sql-1.27.3/src/airflow → apache_airflow_providers_common_sql-1.27.4rc1/src/airflow/providers/common}/__init__.py +1 -1
  10. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/__init__.py +1 -1
  11. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/dialects/dialect.py +1 -1
  12. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/dialects/dialect.pyi +1 -1
  13. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/hooks/sql.py +3 -7
  14. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/hooks/sql.pyi +1 -1
  15. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/operators/generic_transfer.py +1 -6
  16. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/operators/sql.py +2 -7
  17. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/sensors/sql.py +1 -12
  18. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/triggers/sql.py +1 -5
  19. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/version_compat.py +8 -0
  20. {apache_airflow_providers_common_sql-1.27.3/src/airflow/providers → apache_airflow_providers_common_sql-1.27.4rc1/tests/system}/__init__.py +1 -1
  21. apache_airflow_providers_common_sql-1.27.4rc1/tests/system/common/__init__.py +17 -0
  22. apache_airflow_providers_common_sql-1.27.4rc1/tests/unit/__init__.py +17 -0
  23. apache_airflow_providers_common_sql-1.27.4rc1/tests/unit/common/__init__.py +17 -0
  24. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/hooks/test_dbapi.py +1 -5
  25. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/operators/test_sql.py +11 -1
  26. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/sensors/test_sql.py +2 -2
  27. apache_airflow_providers_common_sql-1.27.3/tests/system/common/__init__.py +0 -17
  28. apache_airflow_providers_common_sql-1.27.3/tests/unit/__init__.py +0 -17
  29. apache_airflow_providers_common_sql-1.27.3/tests/unit/common/__init__.py +0 -17
  30. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/.latest-doc-only-change.txt +0 -0
  31. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/commits.rst +0 -0
  32. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/conf.py +0 -0
  33. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/connections.rst +0 -0
  34. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/dataframes.rst +0 -0
  35. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/dialects.rst +0 -0
  36. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/installing-providers-from-sources.rst +0 -0
  37. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/integration-logos/sql.png +0 -0
  38. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/operators.rst +0 -0
  39. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/security.rst +0 -0
  40. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/docs/supported-database-types.rst +0 -0
  41. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/LICENSE +0 -0
  42. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/README_API.md +0 -0
  43. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/dialects/__init__.py +0 -0
  44. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/doc/adr/0001-record-architecture-decisions.md +0 -0
  45. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/doc/adr/0002-return-common-data-structure-from-dbapihook-derived-hooks.md +0 -0
  46. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/doc/adr/0003-introduce-notion-of-dialects-in-dbapihook.md +0 -0
  47. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/get_provider_info.py +0 -0
  48. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/get_provider_info.pyi +0 -0
  49. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/hooks/__init__.py +0 -0
  50. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/hooks/handlers.py +0 -0
  51. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/hooks/handlers.pyi +0 -0
  52. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/operators/__init__.py +0 -0
  53. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/operators/generic_transfer.pyi +0 -0
  54. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/sensors/__init__.py +0 -0
  55. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/sensors/sql.pyi +0 -0
  56. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/triggers/__init__.py +0 -0
  57. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/src/airflow/providers/common/sql/triggers/sql.pyi +0 -0
  58. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/conftest.py +0 -0
  59. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/system/common/sql/__init__.py +0 -0
  60. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/system/common/sql/example_generic_transfer.py +0 -0
  61. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/system/common/sql/example_sql_column_table_check.py +0 -0
  62. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/system/common/sql/example_sql_execute_query.py +0 -0
  63. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/system/common/sql/example_sql_threshold_check.py +0 -0
  64. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/__init__.py +0 -0
  65. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/dialects/__init__.py +0 -0
  66. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/dialects/test_dialect.py +0 -0
  67. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/hooks/__init__.py +0 -0
  68. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/hooks/test_handlers.py +0 -0
  69. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/hooks/test_sql.py +0 -0
  70. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/hooks/test_sqlparse.py +0 -0
  71. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/operators/__init__.py +0 -0
  72. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/operators/test_generic_transfer.py +0 -0
  73. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/operators/test_sql_execute.py +0 -0
  74. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/sensors/__init__.py +0 -0
  75. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/triggers/__init__.py +0 -0
  76. {apache_airflow_providers_common_sql-1.27.3 → apache_airflow_providers_common_sql-1.27.4rc1}/tests/unit/common/sql/triggers/test_sql.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-common-sql
3
- Version: 1.27.3
3
+ Version: 1.27.4rc1
4
4
  Summary: Provider package apache-airflow-providers-common-sql for Apache Airflow
5
5
  Keywords: airflow-provider,common.sql,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
- Requires-Python: ~=3.10
8
+ Requires-Python: >=3.10
9
9
  Description-Content-Type: text/x-rst
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Environment :: Console
@@ -18,18 +18,19 @@ Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Classifier: Topic :: System :: Monitoring
22
- Requires-Dist: apache-airflow>=2.10.0
23
+ Requires-Dist: apache-airflow>=2.10.0rc1
23
24
  Requires-Dist: sqlparse>=0.5.1
24
25
  Requires-Dist: more-itertools>=9.0.0
25
26
  Requires-Dist: methodtools>=0.4.7
26
27
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
27
- Requires-Dist: pandas>=2.1.2 ; extra == "pandas" and ( python_version <"3.13")
28
+ Requires-Dist: pandas[sql-other]>=2.1.2 ; extra == "pandas" and ( python_version <"3.13")
28
29
  Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13")
29
30
  Requires-Dist: polars>=1.26.0 ; extra == "polars"
30
31
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
31
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/changelog.html
32
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3
32
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/changelog.html
33
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.27.4
33
34
  Project-URL: Mastodon, https://fosstodon.org/@airflow
34
35
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
35
36
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -63,8 +64,9 @@ Provides-Extra: polars
63
64
 
64
65
  Package ``apache-airflow-providers-common-sql``
65
66
 
66
- Release: ``1.27.3``
67
+ Release: ``1.27.4``
67
68
 
69
+ Release Date: ``|PypiReleaseDate|``
68
70
 
69
71
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
70
72
 
@@ -76,7 +78,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
76
78
  are in ``airflow.providers.common.sql`` python package.
77
79
 
78
80
  You can find package information and changelog for the provider
79
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/>`_.
81
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/>`_.
80
82
 
81
83
  Installation
82
84
  ------------
@@ -85,7 +87,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
85
87
  for the minimum Airflow version supported) via
86
88
  ``pip install apache-airflow-providers-common-sql``
87
89
 
88
- The package supports the following python versions: 3.10,3.11,3.12
90
+ The package supports the following python versions: 3.10,3.11,3.12,3.13
89
91
 
90
92
  Requirements
91
93
  ------------
@@ -119,5 +121,5 @@ Dependent package
119
121
  ============================================================================================================== ===============
120
122
 
121
123
  The changelog for the provider package can be found in the
122
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/changelog.html>`_.
124
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/changelog.html>`_.
123
125
 
@@ -23,8 +23,9 @@
23
23
 
24
24
  Package ``apache-airflow-providers-common-sql``
25
25
 
26
- Release: ``1.27.3``
26
+ Release: ``1.27.4``
27
27
 
28
+ Release Date: ``|PypiReleaseDate|``
28
29
 
29
30
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
30
31
 
@@ -36,7 +37,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
36
37
  are in ``airflow.providers.common.sql`` python package.
37
38
 
38
39
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/>`_.
40
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/>`_.
40
41
 
41
42
  Installation
42
43
  ------------
@@ -45,7 +46,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
45
46
  for the minimum Airflow version supported) via
46
47
  ``pip install apache-airflow-providers-common-sql``
47
48
 
48
- The package supports the following python versions: 3.10,3.11,3.12
49
+ The package supports the following python versions: 3.10,3.11,3.12,3.13
49
50
 
50
51
  Requirements
51
52
  ------------
@@ -79,4 +80,4 @@ Dependent package
79
80
  ============================================================================================================== ===============
80
81
 
81
82
  The changelog for the provider package can be found in the
82
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/changelog.html>`_.
83
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/changelog.html>`_.
@@ -25,6 +25,26 @@
25
25
  Changelog
26
26
  ---------
27
27
 
28
+ 1.27.4
29
+ ......
30
+
31
+ Misc
32
+ ~~~~
33
+
34
+ * ``Fix unreachable code mypy warnings in teradata provider (#53488)``
35
+ * ``Add sql extras to pandas in the providers where sqlalchemy is needed (#53535)``
36
+ * ``Add Python 3.13 support for Airflow. (#46891)``
37
+ * ``Cleanup type ignores (#53297)``
38
+ * ``Remove type ignore across codebase after mypy upgrade (#53243)``
39
+ * ``Remove upper-binding for "python-requires" (#52980)``
40
+ * ``Temporarily switch to use >=,< pattern instead of '~=' (#52967)``
41
+ * ``Move all BaseHook usages to version_compat in Common SQL (#52800)``
42
+
43
+ .. Below changes are excluded from the changelog. Move them to
44
+ appropriate section above if needed. Do not delete the lines(!):
45
+ * ``Add run_on_latest_version support for backfill and clear operations (#52177)``
46
+ * ``Make dag_version_id in TI non-nullable (#50825)``
47
+
28
48
  1.27.3
29
49
  ......
30
50
 
@@ -79,7 +79,9 @@ apache-airflow-providers-common-sql package
79
79
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
80
80
 
81
81
 
82
- Release: 1.27.3
82
+ Release: 1.27.4
83
+
84
+ Release Date: ``|PypiReleaseDate|``
83
85
 
84
86
  Provider package
85
87
  ----------------
@@ -133,5 +135,5 @@ Downloading official packages
133
135
  You can download officially released packages and verify their checksums and signatures from the
134
136
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
135
137
 
136
- * `The apache-airflow-providers-common-sql 1.27.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3.tar.gz.sha512>`__)
137
- * `The apache-airflow-providers-common-sql 1.27.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.3-py3-none-any.whl.sha512>`__)
138
+ * `The apache-airflow-providers-common-sql 1.27.4 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4.tar.gz.sha512>`__)
139
+ * `The apache-airflow-providers-common-sql 1.27.4 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.27.4-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1751472956
25
+ source-date-epoch: 1753690201
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
+ - 1.27.4
31
32
  - 1.27.3
32
33
  - 1.27.2
33
34
  - 1.27.1
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-common-sql"
28
- version = "1.27.3"
28
+ version = "1.27.4rc1"
29
29
  description = "Provider package apache-airflow-providers-common-sql for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -47,16 +47,17 @@ classifiers = [
47
47
  "Programming Language :: Python :: 3.10",
48
48
  "Programming Language :: Python :: 3.11",
49
49
  "Programming Language :: Python :: 3.12",
50
+ "Programming Language :: Python :: 3.13",
50
51
  "Topic :: System :: Monitoring",
51
52
  ]
52
- requires-python = "~=3.10"
53
+ requires-python = ">=3.10"
53
54
 
54
55
  # The dependencies should be modified in place in the generated file.
55
56
  # Any change in the dependencies is preserved when the file is regenerated
56
57
  # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
57
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
58
59
  dependencies = [
59
- "apache-airflow>=2.10.0",
60
+ "apache-airflow>=2.10.0rc1",
60
61
  "sqlparse>=0.5.1",
61
62
  "more-itertools>=9.0.0",
62
63
  # The methodtools dependency is necessary since the introduction of dialects:
@@ -68,7 +69,9 @@ dependencies = [
68
69
  # Any change in the dependencies is preserved when the file is regenerated
69
70
  [project.optional-dependencies]
70
71
  "pandas" = [
71
- 'pandas>=2.1.2; python_version <"3.13"',
72
+ 'pandas[sql-other]>=2.1.2; python_version <"3.13"',
73
+ # Technically - we should add "sql-other" here as well, but this will only be possible when we move
74
+ # to sqlalchemy 2+ TODO(potiuk): do so.
72
75
  'pandas>=2.2.3; python_version >="3.13"',
73
76
  ]
74
77
  "openlineage" = [
@@ -118,8 +121,8 @@ apache-airflow-providers-common-sql = {workspace = true}
118
121
  apache-airflow-providers-standard = {workspace = true}
119
122
 
120
123
  [project.urls]
121
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3"
122
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/changelog.html"
124
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.27.4"
125
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.27.4/changelog.html"
123
126
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
124
127
  "Source Code" = "https://github.com/apache/airflow"
125
128
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.27.3"
32
+ __version__ = "1.27.4"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -158,7 +158,7 @@ class Dialect(LoggingMixin):
158
158
  handler: Callable[[Any], T] | None = None,
159
159
  split_statements: bool = False,
160
160
  return_last: bool = True,
161
- ) -> tuple | list[tuple] | list[list[tuple] | tuple] | None:
161
+ ) -> tuple | list | list[tuple] | list[list[tuple] | tuple] | None:
162
162
  return self.hook.run(sql, autocommit, parameters, handler, split_statements, return_last)
163
163
 
164
164
  def get_records(
@@ -72,7 +72,7 @@ class Dialect(LoggingMixin):
72
72
  handler: Callable[[Any], T] | None = None,
73
73
  split_statements: bool = False,
74
74
  return_last: bool = True,
75
- ) -> tuple | list[tuple] | list[list[tuple] | tuple] | None: ...
75
+ ) -> tuple | list | list[tuple] | list[list[tuple] | tuple] | None: ...
76
76
  def get_records(
77
77
  self, sql: str | list[str], parameters: Iterable | Mapping[str, Any] | None = None
78
78
  ) -> Any: ...
@@ -41,11 +41,7 @@ from airflow.exceptions import (
41
41
  )
42
42
  from airflow.providers.common.sql.dialects.dialect import Dialect
43
43
  from airflow.providers.common.sql.hooks import handlers
44
-
45
- try:
46
- from airflow.sdk import BaseHook
47
- except ImportError:
48
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
44
+ from airflow.providers.common.sql.version_compat import BaseHook
49
45
  from airflow.utils.module_loading import import_string
50
46
 
51
47
  if TYPE_CHECKING:
@@ -684,7 +680,7 @@ class DbApiHook(BaseHook):
684
680
  handler: Callable[[Any], T] = ...,
685
681
  split_statements: bool = ...,
686
682
  return_last: bool = ...,
687
- ) -> tuple | list[tuple] | list[list[tuple] | tuple] | None: ...
683
+ ) -> tuple | list | list[tuple] | list[list[tuple] | tuple] | None: ...
688
684
 
689
685
  def run(
690
686
  self,
@@ -694,7 +690,7 @@ class DbApiHook(BaseHook):
694
690
  handler: Callable[[Any], T] | None = None,
695
691
  split_statements: bool = False,
696
692
  return_last: bool = True,
697
- ) -> tuple | list[tuple] | list[list[tuple] | tuple] | None:
693
+ ) -> tuple | list | list[tuple] | list[list[tuple] | tuple] | None:
698
694
  """
699
695
  Run a command or a list of commands.
700
696
 
@@ -204,4 +204,4 @@ class DbApiHook(BaseHook):
204
204
  handler: Callable[[Any], T] = ...,
205
205
  split_statements: bool = ...,
206
206
  return_last: bool = ...,
207
- ) -> tuple | list[tuple] | list[list[tuple] | tuple] | None: ...
207
+ ) -> tuple | list | list[tuple] | list[list[tuple] | tuple] | None: ...
@@ -24,12 +24,7 @@ from typing import TYPE_CHECKING, Any
24
24
  from airflow.exceptions import AirflowException
25
25
  from airflow.providers.common.sql.hooks.sql import DbApiHook
26
26
  from airflow.providers.common.sql.triggers.sql import SQLExecuteQueryTrigger
27
- from airflow.providers.common.sql.version_compat import BaseOperator
28
-
29
- try:
30
- from airflow.sdk import BaseHook
31
- except ImportError:
32
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
27
+ from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
33
28
 
34
29
  if TYPE_CHECKING:
35
30
  import jinja2
@@ -27,14 +27,9 @@ from airflow.exceptions import AirflowException, AirflowFailException
27
27
  from airflow.models import SkipMixin
28
28
  from airflow.providers.common.sql.hooks.handlers import fetch_all_handler, return_single_query_results
29
29
  from airflow.providers.common.sql.hooks.sql import DbApiHook
30
- from airflow.providers.common.sql.version_compat import BaseOperator
30
+ from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
31
31
  from airflow.utils.helpers import merge_dicts
32
32
 
33
- try:
34
- from airflow.sdk import BaseHook
35
- except ImportError:
36
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
37
-
38
33
  if TYPE_CHECKING:
39
34
  from airflow.providers.openlineage.extractors import OperatorLineage
40
35
  from airflow.utils.context import Context
@@ -1252,7 +1247,7 @@ class BranchSQLOperator(BaseSQLOperator, SkipMixin):
1252
1247
  )
1253
1248
 
1254
1249
  # TODO(potiuk) remove the type ignore once we solve provider <-> Task SDK relationship
1255
- self.skip_all_except(context["ti"], follow_branch) # type: ignore[arg-type]
1250
+ self.skip_all_except(context["ti"], follow_branch)
1256
1251
 
1257
1252
 
1258
1253
  def _initialize_partition_clause(clause: str | None) -> str | None:
@@ -22,18 +22,7 @@ from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.exceptions import AirflowException
24
24
  from airflow.providers.common.sql.hooks.sql import DbApiHook
25
-
26
- try:
27
- from airflow.sdk import BaseHook
28
- except ImportError:
29
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
30
-
31
- from airflow.providers.common.sql.version_compat import AIRFLOW_V_3_0_PLUS
32
-
33
- if AIRFLOW_V_3_0_PLUS:
34
- from airflow.sdk import BaseSensorOperator
35
- else:
36
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
25
+ from airflow.providers.common.sql.version_compat import BaseHook, BaseSensorOperator
37
26
 
38
27
  if TYPE_CHECKING:
39
28
  from airflow.utils.context import Context
@@ -21,11 +21,7 @@ from typing import TYPE_CHECKING
21
21
 
22
22
  from airflow.exceptions import AirflowException
23
23
  from airflow.providers.common.sql.hooks.sql import DbApiHook
24
-
25
- try:
26
- from airflow.sdk import BaseHook
27
- except ImportError:
28
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
24
+ from airflow.providers.common.sql.version_compat import BaseHook
29
25
  from airflow.triggers.base import BaseTrigger, TriggerEvent
30
26
 
31
27
  if TYPE_CHECKING:
@@ -33,6 +33,12 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
33
33
 
34
34
 
35
35
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36
+ AIRFLOW_V_3_1_PLUS: bool = get_base_airflow_version_tuple() >= (3, 1, 0)
37
+
38
+ if AIRFLOW_V_3_1_PLUS:
39
+ from airflow.sdk import BaseHook
40
+ else:
41
+ from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
36
42
 
37
43
  if AIRFLOW_V_3_0_PLUS:
38
44
  from airflow.sdk import BaseOperator, BaseSensorOperator
@@ -42,6 +48,8 @@ else:
42
48
 
43
49
  __all__ = [
44
50
  "AIRFLOW_V_3_0_PLUS",
51
+ "AIRFLOW_V_3_1_PLUS",
52
+ "BaseHook",
45
53
  "BaseOperator",
46
54
  "BaseSensorOperator",
47
55
  ]
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -0,0 +1,17 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -0,0 +1,17 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -0,0 +1,17 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -30,11 +30,7 @@ from airflow.models import Connection
30
30
  from airflow.providers.common.sql.dialects.dialect import Dialect
31
31
  from airflow.providers.common.sql.hooks.handlers import fetch_all_handler, fetch_one_handler
32
32
  from airflow.providers.common.sql.hooks.sql import DbApiHook
33
-
34
- try:
35
- from airflow.sdk import BaseHook
36
- except ImportError:
37
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
33
+ from airflow.providers.common.sql.version_compat import BaseHook
38
34
 
39
35
 
40
36
  class DbApiHookInProvider(DbApiHook):
@@ -36,6 +36,7 @@ except ImportError:
36
36
  from airflow import DAG
37
37
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
38
38
  from airflow.models import Connection, DagRun, TaskInstance as TI
39
+ from airflow.models.serialized_dag import SerializedDagModel
39
40
  from airflow.providers.common.sql.hooks.handlers import fetch_all_handler
40
41
  from airflow.providers.common.sql.operators.sql import (
41
42
  BaseSQLOperator,
@@ -1103,6 +1104,9 @@ class TestSqlBranch:
1103
1104
  self.branch_1 = EmptyOperator(task_id="branch_1", dag=self.dag)
1104
1105
  self.branch_2 = EmptyOperator(task_id="branch_2", dag=self.dag)
1105
1106
  self.branch_3 = None
1107
+ if AIRFLOW_V_3_0_PLUS:
1108
+ self.dag.sync_to_db()
1109
+ SerializedDagModel.write_dag(self.dag, bundle_name="testing")
1106
1110
 
1107
1111
  def get_ti(self, task_id, dr=None):
1108
1112
  if dr is None:
@@ -1136,7 +1140,7 @@ class TestSqlBranch:
1136
1140
 
1137
1141
  @pytest.fixture
1138
1142
  def branch_op(self):
1139
- return BranchSQLOperator(
1143
+ branch_op = BranchSQLOperator(
1140
1144
  task_id="make_choice",
1141
1145
  conn_id="mysql_default",
1142
1146
  sql="SELECT 1",
@@ -1144,6 +1148,10 @@ class TestSqlBranch:
1144
1148
  follow_task_ids_if_false=["branch_2"],
1145
1149
  dag=self.dag,
1146
1150
  )
1151
+ if AIRFLOW_V_3_0_PLUS:
1152
+ self.dag.sync_to_db()
1153
+ SerializedDagModel.write_dag(self.dag, bundle_name="testing")
1154
+ return branch_op
1147
1155
 
1148
1156
  def test_unsupported_conn_type(self):
1149
1157
  """Check if BranchSQLOperator throws an exception for unsupported connection type"""
@@ -1383,6 +1391,8 @@ class TestSqlBranch:
1383
1391
  self.dag.clear()
1384
1392
 
1385
1393
  if AIRFLOW_V_3_0_PLUS:
1394
+ self.dag.sync_to_db()
1395
+ SerializedDagModel.write_dag(self.dag, bundle_name="testing")
1386
1396
  dagrun_kwargs = {
1387
1397
  "logical_date": DEFAULT_DATE,
1388
1398
  "run_after": DEFAULT_DATE,
@@ -226,7 +226,7 @@ class TestSqlSensor:
226
226
  task_id="sql_sensor_check",
227
227
  conn_id="postgres_default",
228
228
  sql="SELECT 1",
229
- failure=[1], # type: ignore[arg-type]
229
+ failure=[1],
230
230
  )
231
231
 
232
232
  mock_hook.get_connection.return_value.get_hook.return_value = mock.MagicMock(spec=DbApiHook)
@@ -246,7 +246,7 @@ class TestSqlSensor:
246
246
  task_id="sql_sensor_check",
247
247
  conn_id="postgres_default",
248
248
  sql="SELECT 1",
249
- success=[1], # type: ignore[arg-type]
249
+ success=[1],
250
250
  )
251
251
 
252
252
  mock_hook.get_connection.return_value.get_hook.return_value = mock.MagicMock(spec=DbApiHook)
@@ -1,17 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
@@ -1,17 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
@@ -1,17 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore