apache-airflow-providers-mysql 6.3.4rc1__tar.gz → 6.3.5__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 (48) hide show
  1. apache_airflow_providers_mysql-6.3.5/NOTICE +5 -0
  2. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/PKG-INFO +47 -28
  3. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/README.rst +38 -22
  4. apache_airflow_providers_mysql-6.3.5/docs/.latest-doc-only-change.txt +1 -0
  5. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/changelog.rst +18 -2
  6. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/index.rst +24 -22
  7. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/provider.yaml +2 -1
  8. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/pyproject.toml +9 -6
  9. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/__init__.py +1 -1
  10. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/hooks/mysql.py +1 -6
  11. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/presto_to_mysql.py +2 -6
  12. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/s3_to_mysql.py +2 -6
  13. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/trino_to_mysql.py +2 -6
  14. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/vertica_to_mysql.py +5 -9
  15. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/version_compat.py +0 -6
  16. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/assets/test_mysql.py +8 -3
  17. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/hooks/test_mysql.py +19 -4
  18. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/hooks/test_mysql_connector_python.py +3 -1
  19. apache_airflow_providers_mysql-6.3.4rc1/docs/.latest-doc-only-change.txt +0 -1
  20. {apache_airflow_providers_mysql-6.3.4rc1/src/airflow/providers/mysql → apache_airflow_providers_mysql-6.3.5}/LICENSE +0 -0
  21. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/commits.rst +0 -0
  22. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/conf.py +0 -0
  23. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/connections/mysql.rst +0 -0
  24. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/installing-providers-from-sources.rst +0 -0
  25. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/integration-logos/MySQL.png +0 -0
  26. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/operators.rst +0 -0
  27. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/redirects.txt +0 -0
  28. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/security.rst +0 -0
  29. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/__init__.py +0 -0
  30. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/__init__.py +0 -0
  31. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/assets/__init__.py +0 -0
  32. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/assets/mysql.py +0 -0
  33. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/get_provider_info.py +0 -0
  34. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
  35. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
  36. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/conftest.py +0 -0
  37. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/__init__.py +0 -0
  38. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/mysql/__init__.py +0 -0
  39. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/mysql/example_mysql.py +0 -0
  40. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/__init__.py +0 -0
  41. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/__init__.py +0 -0
  42. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/assets/__init__.py +0 -0
  43. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/hooks/__init__.py +0 -0
  44. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/__init__.py +0 -0
  45. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/test_presto_to_mysql.py +0 -0
  46. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/test_s3_to_mysql.py +0 -0
  47. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/test_trino_to_mysql.py +0 -0
  48. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/test_vertica_to_mysql.py +0 -0
@@ -0,0 +1,5 @@
1
+ Apache Airflow
2
+ Copyright 2016-2025 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-mysql
3
- Version: 6.3.4rc1
3
+ Version: 6.3.5
4
4
  Summary: Provider package apache-airflow-providers-mysql for Apache Airflow
5
5
  Keywords: airflow-provider,mysql,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
8
  Requires-Python: >=3.10
9
9
  Description-Content-Type: text/x-rst
10
+ License-Expression: Apache-2.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Environment :: Web Environment
@@ -14,14 +15,16 @@ Classifier: Intended Audience :: Developers
14
15
  Classifier: Intended Audience :: System Administrators
15
16
  Classifier: Framework :: Apache Airflow
16
17
  Classifier: Framework :: Apache Airflow :: Provider
17
- 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
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0rc1
24
- Requires-Dist: apache-airflow-providers-common-sql>=1.20.0rc1
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: apache-airflow>=2.10.0
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.8.0
27
+ Requires-Dist: apache-airflow-providers-common-sql>=1.20.0
25
28
  Requires-Dist: mysqlclient>=2.2.5; sys_platform != "darwin"
26
29
  Requires-Dist: mysql-connector-python>=9.1.0
27
30
  Requires-Dist: aiomysql>=0.2.0
@@ -31,8 +34,8 @@ Requires-Dist: apache-airflow-providers-presto ; extra == "presto"
31
34
  Requires-Dist: apache-airflow-providers-trino ; extra == "trino"
32
35
  Requires-Dist: apache-airflow-providers-vertica ; extra == "vertica"
33
36
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
34
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html
35
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4
37
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/changelog.html
38
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5
36
39
  Project-URL: Mastodon, https://fosstodon.org/@airflow
37
40
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
38
41
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,7 +72,7 @@ Provides-Extra: vertica
69
72
 
70
73
  Package ``apache-airflow-providers-mysql``
71
74
 
72
- Release: ``6.3.4``
75
+ Release: ``6.3.5``
73
76
 
74
77
 
75
78
  `MySQL <https://www.mysql.com/>`__
@@ -82,7 +85,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
82
85
  are in ``airflow.providers.mysql`` python package.
83
86
 
84
87
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/>`_.
88
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/>`_.
86
89
 
87
90
  Installation
88
91
  ------------
@@ -96,15 +99,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
96
99
  Requirements
97
100
  ------------
98
101
 
99
- ======================================= =====================================
100
- PIP package Version required
101
- ======================================= =====================================
102
- ``apache-airflow`` ``>=2.10.0``
103
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
104
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
105
- ``mysql-connector-python`` ``>=9.1.0``
106
- ``aiomysql`` ``>=0.2.0``
107
- ======================================= =====================================
102
+ ========================================== =====================================
103
+ PIP package Version required
104
+ ========================================== =====================================
105
+ ``apache-airflow`` ``>=2.10.0``
106
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
107
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
108
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
109
+ ``mysql-connector-python`` ``>=9.1.0``
110
+ ``aiomysql`` ``>=0.2.0``
111
+ ========================================== =====================================
108
112
 
109
113
  Cross provider package dependencies
110
114
  -----------------------------------
@@ -119,17 +123,32 @@ You can install such cross-provider dependencies when installing from PyPI. For
119
123
  pip install apache-airflow-providers-mysql[amazon]
120
124
 
121
125
 
122
- ============================================================================================================== ===============
123
- Dependent package Extra
124
- ============================================================================================================== ===============
125
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
126
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
127
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
128
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
129
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
130
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
131
- ============================================================================================================== ===============
126
+ ================================================================================================================== =================
127
+ Dependent package Extra
128
+ ================================================================================================================== =================
129
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
130
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
131
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
132
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
133
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
134
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
135
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
136
+ ================================================================================================================== =================
137
+
138
+ Optional dependencies
139
+ ----------------------
140
+
141
+ ========================== ========================================
142
+ Extra Dependencies
143
+ ========================== ========================================
144
+ ``mysql-connector-python``
145
+ ``amazon`` ``apache-airflow-providers-amazon``
146
+ ``openlineage`` ``apache-airflow-providers-openlineage``
147
+ ``presto`` ``apache-airflow-providers-presto``
148
+ ``trino`` ``apache-airflow-providers-trino``
149
+ ``vertica`` ``apache-airflow-providers-vertica``
150
+ ========================== ========================================
132
151
 
133
152
  The changelog for the provider package can be found in the
134
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
153
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/changelog.html>`_.
135
154
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-mysql``
25
25
 
26
- Release: ``6.3.4``
26
+ Release: ``6.3.5``
27
27
 
28
28
 
29
29
  `MySQL <https://www.mysql.com/>`__
@@ -36,7 +36,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
36
36
  are in ``airflow.providers.mysql`` 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-mysql/6.3.4/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -50,15 +50,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
50
50
  Requirements
51
51
  ------------
52
52
 
53
- ======================================= =====================================
54
- PIP package Version required
55
- ======================================= =====================================
56
- ``apache-airflow`` ``>=2.10.0``
57
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
58
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
59
- ``mysql-connector-python`` ``>=9.1.0``
60
- ``aiomysql`` ``>=0.2.0``
61
- ======================================= =====================================
53
+ ========================================== =====================================
54
+ PIP package Version required
55
+ ========================================== =====================================
56
+ ``apache-airflow`` ``>=2.10.0``
57
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
58
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
59
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
60
+ ``mysql-connector-python`` ``>=9.1.0``
61
+ ``aiomysql`` ``>=0.2.0``
62
+ ========================================== =====================================
62
63
 
63
64
  Cross provider package dependencies
64
65
  -----------------------------------
@@ -73,16 +74,31 @@ You can install such cross-provider dependencies when installing from PyPI. For
73
74
  pip install apache-airflow-providers-mysql[amazon]
74
75
 
75
76
 
76
- ============================================================================================================== ===============
77
- Dependent package Extra
78
- ============================================================================================================== ===============
79
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
80
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
81
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
82
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
83
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
84
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
85
- ============================================================================================================== ===============
77
+ ================================================================================================================== =================
78
+ Dependent package Extra
79
+ ================================================================================================================== =================
80
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
81
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
82
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
83
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
84
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
85
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
86
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
87
+ ================================================================================================================== =================
88
+
89
+ Optional dependencies
90
+ ----------------------
91
+
92
+ ========================== ========================================
93
+ Extra Dependencies
94
+ ========================== ========================================
95
+ ``mysql-connector-python``
96
+ ``amazon`` ``apache-airflow-providers-amazon``
97
+ ``openlineage`` ``apache-airflow-providers-openlineage``
98
+ ``presto`` ``apache-airflow-providers-presto``
99
+ ``trino`` ``apache-airflow-providers-trino``
100
+ ``vertica`` ``apache-airflow-providers-vertica``
101
+ ========================== ========================================
86
102
 
87
103
  The changelog for the provider package can be found in the
88
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
104
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/changelog.html>`_.
@@ -0,0 +1 @@
1
+ 134348e1895ad54cfa4d3a75a78bafe872328b11
@@ -26,11 +26,27 @@
26
26
  Changelog
27
27
  ---------
28
28
 
29
- 6.3.4
29
+ 6.3.5
30
30
  .....
31
31
 
32
+ Misc
33
+ ~~~~
34
+
35
+ * ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
36
+ * ``Migrate MySQL provider to 'common.compat' (#57165)``
37
+
38
+ .. Below changes are excluded from the changelog. Move them to
39
+ appropriate section above if needed. Do not delete the lines(!):
40
+ * ``Delete all unnecessary LICENSE Files (#58191)``
41
+ * ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
42
+ * ``Enable PT006 rule to mysql Provider test (#57937)``
43
+ * ``Prepare release for Oct 2025 wave of providers (#57029)``
44
+ * ``Remove placeholder Release Date in changelog and index files (#56056)``
45
+ * ``Enable PT011 rule to prvoider tests (#56021)``
46
+
47
+ 6.3.4
48
+ .....
32
49
 
33
- Release Date: ``|PypiReleaseDate|``
34
50
 
35
51
  Misc
36
52
  ~~~~
@@ -77,7 +77,7 @@ apache-airflow-providers-mysql package
77
77
  `MySQL <https://www.mysql.com/>`__
78
78
 
79
79
 
80
- Release: 6.3.4
80
+ Release: 6.3.5
81
81
 
82
82
  Provider package
83
83
  ----------------
@@ -97,15 +97,16 @@ Requirements
97
97
 
98
98
  The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
99
99
 
100
- ======================================= =====================================
101
- PIP package Version required
102
- ======================================= =====================================
103
- ``apache-airflow`` ``>=2.10.0``
104
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
105
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
106
- ``mysql-connector-python`` ``>=9.1.0``
107
- ``aiomysql`` ``>=0.2.0``
108
- ======================================= =====================================
100
+ ========================================== =====================================
101
+ PIP package Version required
102
+ ========================================== =====================================
103
+ ``apache-airflow`` ``>=2.10.0``
104
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
105
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
106
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
107
+ ``mysql-connector-python`` ``>=9.1.0``
108
+ ``aiomysql`` ``>=0.2.0``
109
+ ========================================== =====================================
109
110
 
110
111
  Cross provider package dependencies
111
112
  -----------------------------------
@@ -120,16 +121,17 @@ You can install such cross-provider dependencies when installing from PyPI. For
120
121
  pip install apache-airflow-providers-mysql[amazon]
121
122
 
122
123
 
123
- ============================================================================================================== ===============
124
- Dependent package Extra
125
- ============================================================================================================== ===============
126
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
127
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
128
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
129
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
130
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
131
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
132
- ============================================================================================================== ===============
124
+ ================================================================================================================== =================
125
+ Dependent package Extra
126
+ ================================================================================================================== =================
127
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
128
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
129
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
130
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
131
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
132
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
133
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
134
+ ================================================================================================================== =================
133
135
 
134
136
  Downloading official packages
135
137
  -----------------------------
@@ -137,5 +139,5 @@ Downloading official packages
137
139
  You can download officially released packages and verify their checksums and signatures from the
138
140
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
139
141
 
140
- * `The apache-airflow-providers-mysql 6.3.4 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.sha512>`__)
141
- * `The apache-airflow-providers-mysql 6.3.4 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.sha512>`__)
142
+ * `The apache-airflow-providers-mysql 6.3.5 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5.tar.gz.sha512>`__)
143
+ * `The apache-airflow-providers-mysql 6.3.5 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.5-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `MySQL <https://www.mysql.com/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1756877094
25
+ source-date-epoch: 1763069907
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.5
31
32
  - 6.3.4
32
33
  - 6.3.3
33
34
  - 6.3.2
@@ -25,9 +25,11 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-mysql"
28
- version = "6.3.4rc1"
28
+ version = "6.3.5"
29
29
  description = "Provider package apache-airflow-providers-mysql for Apache Airflow"
30
30
  readme = "README.rst"
31
+ license = "Apache-2.0"
32
+ license-files = ['LICENSE', 'NOTICE']
31
33
  authors = [
32
34
  {name="Apache Software Foundation", email="dev@airflow.apache.org"},
33
35
  ]
@@ -43,7 +45,6 @@ classifiers = [
43
45
  "Intended Audience :: System Administrators",
44
46
  "Framework :: Apache Airflow",
45
47
  "Framework :: Apache Airflow :: Provider",
46
- "License :: OSI Approved :: Apache Software License",
47
48
  "Programming Language :: Python :: 3.10",
48
49
  "Programming Language :: Python :: 3.11",
49
50
  "Programming Language :: Python :: 3.12",
@@ -57,8 +58,9 @@ requires-python = ">=3.10"
57
58
  # Make sure to run ``prek update-providers-dependencies --all-files``
58
59
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
60
  dependencies = [
60
- "apache-airflow>=2.10.0rc1",
61
- "apache-airflow-providers-common-sql>=1.20.0rc1",
61
+ "apache-airflow>=2.10.0",
62
+ "apache-airflow-providers-common-compat>=1.8.0",
63
+ "apache-airflow-providers-common-sql>=1.20.0",
62
64
  # The mysqlclient package creates friction when installing on MacOS as it needs pkg-config to
63
65
  # Install and compile, and it's really only used by MySQL provider, so we can skip it on MacOS
64
66
  # Instead, if someone attempts to use it on MacOS, they will get explanatory error on how to install it
@@ -95,6 +97,7 @@ dev = [
95
97
  "apache-airflow-task-sdk",
96
98
  "apache-airflow-devel-common",
97
99
  "apache-airflow-providers-amazon",
100
+ "apache-airflow-providers-common-compat",
98
101
  "apache-airflow-providers-common-sql",
99
102
  "apache-airflow-providers-openlineage",
100
103
  "apache-airflow-providers-presto",
@@ -129,8 +132,8 @@ apache-airflow-providers-common-sql = {workspace = true}
129
132
  apache-airflow-providers-standard = {workspace = true}
130
133
 
131
134
  [project.urls]
132
- "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4"
133
- "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html"
135
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5"
136
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/changelog.html"
134
137
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
135
138
  "Source Code" = "https://github.com/apache/airflow"
136
139
  "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.4"
32
+ __version__ = "6.3.5"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -30,12 +30,7 @@ from airflow.providers.common.sql.hooks.sql import DbApiHook
30
30
  logger = logging.getLogger(__name__)
31
31
 
32
32
  if TYPE_CHECKING:
33
- from airflow.providers.mysql.version_compat import AIRFLOW_V_3_0_PLUS
34
-
35
- if AIRFLOW_V_3_0_PLUS:
36
- from airflow.sdk import Connection
37
- else:
38
- from airflow.models.connection import Connection # type: ignore[assignment]
33
+ from airflow.providers.common.compat.sdk import Connection
39
34
 
40
35
  try:
41
36
  from mysql.connector.abstracts import MySQLConnectionAbstract
@@ -20,16 +20,12 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
24
- from airflow.providers.mysql.version_compat import BaseOperator
25
25
  from airflow.providers.presto.hooks.presto import PrestoHook
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class PrestoToMySqlOperator(BaseOperator):
@@ -21,15 +21,11 @@ from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
23
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
24
+ from airflow.providers.common.compat.sdk import BaseOperator
24
25
  from airflow.providers.mysql.hooks.mysql import MySqlHook
25
- from airflow.providers.mysql.version_compat import BaseOperator
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class S3ToMySqlOperator(BaseOperator):
@@ -20,16 +20,12 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
24
- from airflow.providers.mysql.version_compat import BaseOperator
25
25
  from airflow.providers.trino.hooks.trino import TrinoHook
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class TrinoToMySqlOperator(BaseOperator):
@@ -33,16 +33,12 @@ except ImportError:
33
33
  "installed in case you see compilation error during installation."
34
34
  )
35
35
 
36
+ from airflow.providers.common.compat.sdk import BaseOperator
36
37
  from airflow.providers.mysql.hooks.mysql import MySqlHook
37
- from airflow.providers.mysql.version_compat import BaseOperator
38
38
  from airflow.providers.vertica.hooks.vertica import VerticaHook
39
39
 
40
40
  if TYPE_CHECKING:
41
- try:
42
- from airflow.sdk.definitions.context import Context
43
- except ImportError:
44
- # TODO: Remove once provider drops support for Airflow 2
45
- from airflow.utils.context import Context
41
+ from airflow.providers.common.compat.sdk import Context
46
42
 
47
43
 
48
44
  class VerticaToMySqlOperator(BaseOperator):
@@ -149,13 +145,13 @@ class VerticaToMySqlOperator(BaseOperator):
149
145
  self._run_preoperator(mysql)
150
146
  try:
151
147
  self.log.info("Bulk inserting rows into MySQL...")
152
- with closing(mysql.get_conn()) as conn, closing(conn.cursor()) as cursor:
153
- cursor.execute(
148
+ with closing(mysql.get_conn()) as conn2, closing(conn2.cursor()) as cursor2:
149
+ cursor2.execute(
154
150
  f"LOAD DATA LOCAL INFILE '{tmpfile.name}' "
155
151
  f"INTO TABLE {self.mysql_table} "
156
152
  f"LINES TERMINATED BY '\r\n' ({', '.join(selected_columns)})"
157
153
  )
158
- conn.commit()
154
+ conn2.commit()
159
155
  self.log.info("Inserted rows into MySQL %s", count)
160
156
  except (MySQLdb.Error, MySQLdb.Warning):
161
157
  self.log.info("Inserted rows into MySQL 0")
@@ -29,12 +29,6 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
29
29
 
30
30
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
31
31
 
32
- if AIRFLOW_V_3_0_PLUS:
33
- from airflow.sdk import BaseOperator
34
- else:
35
- from airflow.models import BaseOperator
36
-
37
32
  __all__ = [
38
33
  "AIRFLOW_V_3_0_PLUS",
39
- "BaseOperator",
40
34
  ]
@@ -25,7 +25,7 @@ from airflow.providers.mysql.assets.mysql import sanitize_uri
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize(
28
- "original, normalized",
28
+ ("original", "normalized"),
29
29
  [
30
30
  pytest.param(
31
31
  "mysql://example.com:1234/database/table",
@@ -56,11 +56,16 @@ def test_sanitize_uri_pass(original: str, normalized: str) -> None:
56
56
  pytest.param("mysql://", id="blank"),
57
57
  pytest.param("mysql:///database/table", id="no-host"),
58
58
  pytest.param("mysql://example.com/database", id="missing-component"),
59
- pytest.param("mysql://example.com:abcd/database/table", id="non-port"),
60
59
  pytest.param("mysql://example.com/database/table/column", id="extra-component"),
61
60
  ],
62
61
  )
63
62
  def test_sanitize_uri_fail(value: str) -> None:
64
63
  uri_i = urllib.parse.urlsplit(value)
65
- with pytest.raises(ValueError):
64
+ with pytest.raises(ValueError, match="URI format mysql:// must contain"):
65
+ sanitize_uri(uri_i)
66
+
67
+
68
+ def test_sanitize_uri_fail_non_port() -> None:
69
+ uri_i = urllib.parse.urlsplit("mysql://example.com:abcd/database/table")
70
+ with pytest.raises(ValueError, match="Port could not be cast to integer value as 'abcd'"):
66
71
  sanitize_uri(uri_i)
@@ -25,8 +25,8 @@ from unittest import mock
25
25
  import pytest
26
26
  import sqlalchemy
27
27
 
28
- from airflow.models import Connection
29
28
  from airflow.models.dag import DAG
29
+ from airflow.providers.common.compat.sdk import Connection
30
30
 
31
31
  try:
32
32
  import MySQLdb.cursors
@@ -52,6 +52,7 @@ INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, descript
52
52
  class TestMySqlHookConn:
53
53
  def setup_method(self):
54
54
  self.connection = Connection(
55
+ conn_id="test_conn_id",
55
56
  conn_type="mysql",
56
57
  login="login",
57
58
  password="password",
@@ -91,7 +92,7 @@ class TestMySqlHookConn:
91
92
 
92
93
  @mock.patch("MySQLdb.connect")
93
94
  @pytest.mark.parametrize(
94
- "connection_params, expected_uri",
95
+ ("connection_params", "expected_uri"),
95
96
  [
96
97
  pytest.param(
97
98
  {
@@ -194,7 +195,14 @@ class TestMySqlHookConn:
194
195
 
195
196
  @mock.patch("MySQLdb.connect")
196
197
  def test_get_conn_from_connection(self, mock_connect):
197
- conn = Connection(login="login-conn", password="password-conn", host="host", schema="schema")
198
+ conn = Connection(
199
+ conn_id="test_conn_id",
200
+ conn_type="mysql",
201
+ login="login-conn",
202
+ password="password-conn",
203
+ host="host",
204
+ schema="schema",
205
+ )
198
206
  hook = MySqlHook(connection=conn)
199
207
  hook.get_conn()
200
208
  mock_connect.assert_called_once_with(
@@ -203,7 +211,14 @@ class TestMySqlHookConn:
203
211
 
204
212
  @mock.patch("MySQLdb.connect")
205
213
  def test_get_conn_from_connection_with_schema(self, mock_connect):
206
- conn = Connection(login="login-conn", password="password-conn", host="host", schema="schema")
214
+ conn = Connection(
215
+ conn_id="test_conn_id",
216
+ conn_type="mysql",
217
+ login="login-conn",
218
+ password="password-conn",
219
+ host="host",
220
+ schema="schema",
221
+ )
207
222
  hook = MySqlHook(connection=conn, schema="schema-override")
208
223
  hook.get_conn()
209
224
  mock_connect.assert_called_once_with(
@@ -20,13 +20,15 @@ from __future__ import annotations
20
20
  import json
21
21
  from unittest import mock
22
22
 
23
- from airflow.models import Connection
23
+ from airflow.providers.common.compat.sdk import Connection
24
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
25
25
 
26
26
 
27
27
  class TestMySqlHookConnMySqlConnectorPython:
28
28
  def setup_method(self):
29
29
  self.connection = Connection(
30
+ conn_id="test_conn_id",
31
+ conn_type="mysql",
30
32
  login="login",
31
33
  password="password",
32
34
  host="host",
@@ -1 +0,0 @@
1
- d4473555c0e7022e073489b7163d49102881a1a6