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.
- apache_airflow_providers_mysql-6.3.5/NOTICE +5 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/PKG-INFO +47 -28
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/README.rst +38 -22
- apache_airflow_providers_mysql-6.3.5/docs/.latest-doc-only-change.txt +1 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/changelog.rst +18 -2
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/index.rst +24 -22
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/provider.yaml +2 -1
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/pyproject.toml +9 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/__init__.py +1 -1
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/hooks/mysql.py +1 -6
- {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
- {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
- {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
- {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
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/version_compat.py +0 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/assets/test_mysql.py +8 -3
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/hooks/test_mysql.py +19 -4
- {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
- apache_airflow_providers_mysql-6.3.4rc1/docs/.latest-doc-only-change.txt +0 -1
- {apache_airflow_providers_mysql-6.3.4rc1/src/airflow/providers/mysql → apache_airflow_providers_mysql-6.3.5}/LICENSE +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/commits.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/conf.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/connections/mysql.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/integration-logos/MySQL.png +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/operators.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/redirects.txt +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/security.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/assets/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/assets/mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/get_provider_info.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/conftest.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/mysql/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/system/mysql/example_mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/assets/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/hooks/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/unit/mysql/transfers/__init__.py +0 -0
- {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
- {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
- {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
- {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
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-mysql
|
|
3
|
-
Version: 6.3.
|
|
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
|
-
|
|
24
|
-
|
|
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.
|
|
35
|
-
Project-URL: Documentation, https://airflow.
|
|
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.
|
|
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.
|
|
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
|
|
101
|
-
|
|
102
|
-
``apache-airflow``
|
|
103
|
-
``apache-airflow-providers-common-
|
|
104
|
-
``
|
|
105
|
-
``
|
|
106
|
-
``
|
|
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
|
|
124
|
-
|
|
125
|
-
`apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_
|
|
126
|
-
`apache-airflow-providers-common-
|
|
127
|
-
`apache-airflow-providers-
|
|
128
|
-
`apache-airflow-providers-
|
|
129
|
-
`apache-airflow-providers-
|
|
130
|
-
`apache-airflow-providers-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
55
|
-
|
|
56
|
-
``apache-airflow``
|
|
57
|
-
``apache-airflow-providers-common-
|
|
58
|
-
``
|
|
59
|
-
``
|
|
60
|
-
``
|
|
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
|
|
78
|
-
|
|
79
|
-
`apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_
|
|
80
|
-
`apache-airflow-providers-common-
|
|
81
|
-
`apache-airflow-providers-
|
|
82
|
-
`apache-airflow-providers-
|
|
83
|
-
`apache-airflow-providers-
|
|
84
|
-
`apache-airflow-providers-
|
|
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.
|
|
104
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.5/changelog.html>`_.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
134348e1895ad54cfa4d3a75a78bafe872328b11
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/changelog.rst
RENAMED
|
@@ -26,11 +26,27 @@
|
|
|
26
26
|
Changelog
|
|
27
27
|
---------
|
|
28
28
|
|
|
29
|
-
6.3.
|
|
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
|
~~~~
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/index.rst
RENAMED
|
@@ -77,7 +77,7 @@ apache-airflow-providers-mysql package
|
|
|
77
77
|
`MySQL <https://www.mysql.com/>`__
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
Release: 6.3.
|
|
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
|
|
102
|
-
|
|
103
|
-
``apache-airflow``
|
|
104
|
-
``apache-airflow-providers-common-
|
|
105
|
-
``
|
|
106
|
-
``
|
|
107
|
-
``
|
|
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
|
|
125
|
-
|
|
126
|
-
`apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_
|
|
127
|
-
`apache-airflow-providers-common-
|
|
128
|
-
`apache-airflow-providers-
|
|
129
|
-
`apache-airflow-providers-
|
|
130
|
-
`apache-airflow-providers-
|
|
131
|
-
`apache-airflow-providers-
|
|
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.
|
|
141
|
-
* `The apache-airflow-providers-mysql 6.3.
|
|
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>`__)
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/provider.yaml
RENAMED
|
@@ -22,12 +22,13 @@ description: |
|
|
|
22
22
|
`MySQL <https://www.mysql.com/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
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
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/pyproject.toml
RENAMED
|
@@ -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.
|
|
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.
|
|
61
|
-
"apache-airflow-providers-common-
|
|
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.
|
|
133
|
-
"Changelog" = "https://airflow.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
153
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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.
|
|
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
|
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/commits.rst
RENAMED
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/conf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/operators.rst
RENAMED
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/redirects.txt
RENAMED
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/docs/security.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.3.5}/tests/conftest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|