apache-airflow-providers-mysql 6.3.4rc1__tar.gz → 6.4.1rc1__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.4.1rc1/NOTICE +5 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/PKG-INFO +46 -27
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/README.rst +38 -22
- apache_airflow_providers_mysql-6.4.1rc1/docs/.latest-doc-only-change.txt +1 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/changelog.rst +52 -4
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/index.rst +25 -23
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/provider.yaml +4 -1
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/pyproject.toml +8 -5
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/__init__.py +3 -3
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/hooks/mysql.py +2 -7
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/presto_to_mysql.py +2 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/s3_to_mysql.py +2 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/trino_to_mysql.py +2 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/vertica_to_mysql.py +5 -9
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/version_compat.py +0 -6
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/assets/test_mysql.py +8 -3
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/test_mysql.py +23 -13
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/test_mysql_connector_python.py +3 -1
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_s3_to_mysql.py +3 -5
- 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.4.1rc1}/LICENSE +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/connections/mysql.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/integration-logos/MySQL.png +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/operators.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/redirects.txt +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/assets/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/assets/mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/get_provider_info.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/mysql/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/mysql/example_mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/assets/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/__init__.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_presto_to_mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_trino_to_mysql.py +0 -0
- {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_vertica_to_mysql.py +0 -0
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/PKG-INFO
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-mysql
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.4.1rc1
|
|
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,13 +15,15 @@ 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
|
-
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: NOTICE
|
|
25
|
+
Requires-Dist: apache-airflow>=2.11.0rc1
|
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.12.0rc1
|
|
24
27
|
Requires-Dist: apache-airflow-providers-common-sql>=1.20.0rc1
|
|
25
28
|
Requires-Dist: mysqlclient>=2.2.5; sys_platform != "darwin"
|
|
26
29
|
Requires-Dist: mysql-connector-python>=9.1.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.
|
|
35
|
-
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.
|
|
37
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html
|
|
38
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1
|
|
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.
|
|
75
|
+
Release: ``6.4.1``
|
|
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.
|
|
88
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/>`_.
|
|
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.11.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.
|
|
153
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html>`_.
|
|
135
154
|
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/README.rst
RENAMED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-mysql``
|
|
25
25
|
|
|
26
|
-
Release: ``6.
|
|
26
|
+
Release: ``6.4.1``
|
|
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.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/>`_.
|
|
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.11.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.
|
|
104
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html>`_.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
134348e1895ad54cfa4d3a75a78bafe872328b11
|
|
@@ -26,11 +26,57 @@
|
|
|
26
26
|
Changelog
|
|
27
27
|
---------
|
|
28
28
|
|
|
29
|
-
6.
|
|
29
|
+
6.4.1
|
|
30
30
|
.....
|
|
31
31
|
|
|
32
|
+
Misc
|
|
33
|
+
~~~~
|
|
34
|
+
|
|
35
|
+
* ``Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)``
|
|
36
|
+
* ``New year means updated Copyright notices (#60344)``
|
|
37
|
+
|
|
38
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
39
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
40
|
+
* ``Remove TaskInstance and TaskLogReader unused methods (#59922)``
|
|
41
|
+
* ``Refactor/sqla2 providers(celery, kubernetes, databricks, mysql) to remove SQLA query usage (#59537)``
|
|
42
|
+
|
|
43
|
+
6.4.0
|
|
44
|
+
.....
|
|
45
|
+
|
|
46
|
+
.. note::
|
|
47
|
+
This release of provider is only available for Airflow 2.11+ as explained in the
|
|
48
|
+
Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
|
|
49
|
+
|
|
50
|
+
Misc
|
|
51
|
+
~~~~
|
|
52
|
+
|
|
53
|
+
* ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
|
|
54
|
+
|
|
55
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
56
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
57
|
+
* ``Updates to release process of providers (#58316)``
|
|
58
|
+
|
|
59
|
+
6.3.5
|
|
60
|
+
.....
|
|
61
|
+
|
|
62
|
+
Misc
|
|
63
|
+
~~~~
|
|
64
|
+
|
|
65
|
+
* ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
|
|
66
|
+
* ``Migrate MySQL provider to 'common.compat' (#57165)``
|
|
67
|
+
|
|
68
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
69
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
70
|
+
* ``Delete all unnecessary LICENSE Files (#58191)``
|
|
71
|
+
* ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
|
|
72
|
+
* ``Enable PT006 rule to mysql Provider test (#57937)``
|
|
73
|
+
* ``Prepare release for Oct 2025 wave of providers (#57029)``
|
|
74
|
+
* ``Remove placeholder Release Date in changelog and index files (#56056)``
|
|
75
|
+
* ``Enable PT011 rule to prvoider tests (#56021)``
|
|
76
|
+
|
|
77
|
+
6.3.4
|
|
78
|
+
.....
|
|
32
79
|
|
|
33
|
-
Release Date: ``|PypiReleaseDate|``
|
|
34
80
|
|
|
35
81
|
Misc
|
|
36
82
|
~~~~
|
|
@@ -47,7 +93,8 @@ Doc-only
|
|
|
47
93
|
appropriate section above if needed. Do not delete the lines(!):
|
|
48
94
|
* ``Switch pre-commit to prek (#54258)``
|
|
49
95
|
|
|
50
|
-
..
|
|
96
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
97
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
51
98
|
* ``Fix Airflow 2 reference in README/index of providers (#55240)``
|
|
52
99
|
|
|
53
100
|
6.3.3
|
|
@@ -229,7 +276,8 @@ Misc
|
|
|
229
276
|
appropriate section above if needed. Do not delete the lines(!):
|
|
230
277
|
* ``Use Python 3.9 as target version for Ruff & Black rules (#44298)``
|
|
231
278
|
|
|
232
|
-
..
|
|
279
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
280
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
233
281
|
* ``Update path of example dags in docs (#45069)``
|
|
234
282
|
|
|
235
283
|
5.7.4
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/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.
|
|
80
|
+
Release: 6.4.1
|
|
81
81
|
|
|
82
82
|
Provider package
|
|
83
83
|
----------------
|
|
@@ -95,17 +95,18 @@ For the minimum Airflow version supported, see ``Requirements`` below.
|
|
|
95
95
|
Requirements
|
|
96
96
|
------------
|
|
97
97
|
|
|
98
|
-
The minimum Apache Airflow version supported by this provider distribution is ``2.
|
|
98
|
+
The minimum Apache Airflow version supported by this provider distribution is ``2.11.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.11.0``
|
|
104
|
+
``apache-airflow-providers-common-compat`` ``>=1.12.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.
|
|
141
|
-
* `The apache-airflow-providers-mysql 6.
|
|
142
|
+
* `The apache-airflow-providers-mysql 6.4.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz.sha512>`__)
|
|
143
|
+
* `The apache-airflow-providers-mysql 6.4.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl.sha512>`__)
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/provider.yaml
RENAMED
|
@@ -22,12 +22,15 @@ description: |
|
|
|
22
22
|
`MySQL <https://www.mysql.com/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1768335332
|
|
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.4.1
|
|
32
|
+
- 6.4.0
|
|
33
|
+
- 6.3.5
|
|
31
34
|
- 6.3.4
|
|
32
35
|
- 6.3.3
|
|
33
36
|
- 6.3.2
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/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.
|
|
28
|
+
version = "6.4.1rc1"
|
|
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,7 +58,8 @@ 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.
|
|
61
|
+
"apache-airflow>=2.11.0rc1",
|
|
62
|
+
"apache-airflow-providers-common-compat>=1.12.0rc1",
|
|
61
63
|
"apache-airflow-providers-common-sql>=1.20.0rc1",
|
|
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
|
|
@@ -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.
|
|
133
|
-
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.
|
|
135
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1"
|
|
136
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1/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,11 +29,11 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "6.
|
|
32
|
+
__version__ = "6.4.1"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
|
-
"2.
|
|
35
|
+
"2.11.0"
|
|
36
36
|
):
|
|
37
37
|
raise RuntimeError(
|
|
38
|
-
f"The package `apache-airflow-providers-mysql:{__version__}` needs Apache Airflow 2.
|
|
38
|
+
f"The package `apache-airflow-providers-mysql:{__version__}` needs Apache Airflow 2.11.0+"
|
|
39
39
|
)
|
|
@@ -24,18 +24,13 @@ import logging
|
|
|
24
24
|
from typing import TYPE_CHECKING, Any, Union
|
|
25
25
|
from urllib.parse import quote_plus, urlencode
|
|
26
26
|
|
|
27
|
-
from airflow.
|
|
27
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
28
28
|
from airflow.providers.common.sql.hooks.sql import DbApiHook
|
|
29
29
|
|
|
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,12 @@ 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
|
+
from airflow.providers.mysql.hooks.mysql import MySqlHook
|
|
31
|
+
|
|
32
|
+
from tests_common.test_utils.asserts import assert_equal_ignore_multiple_spaces
|
|
33
|
+
from tests_common.test_utils.compat import timezone
|
|
30
34
|
|
|
31
35
|
try:
|
|
32
36
|
import MySQLdb.cursors
|
|
@@ -35,15 +39,6 @@ try:
|
|
|
35
39
|
except ImportError:
|
|
36
40
|
MYSQL_AVAILABLE = False
|
|
37
41
|
|
|
38
|
-
from airflow.providers.mysql.hooks.mysql import MySqlHook
|
|
39
|
-
|
|
40
|
-
try:
|
|
41
|
-
from airflow.sdk import timezone
|
|
42
|
-
except ImportError:
|
|
43
|
-
from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
|
|
44
|
-
|
|
45
|
-
from tests_common.test_utils.asserts import assert_equal_ignore_multiple_spaces
|
|
46
|
-
|
|
47
42
|
SSL_DICT = {"cert": "/tmp/client-cert.pem", "ca": "/tmp/server-ca.pem", "key": "/tmp/client-key.pem"}
|
|
48
43
|
INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, description, host, `schema`, login, password, port, is_encrypted, is_extra_encrypted, extra) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
|
|
49
44
|
|
|
@@ -52,6 +47,7 @@ INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, descript
|
|
|
52
47
|
class TestMySqlHookConn:
|
|
53
48
|
def setup_method(self):
|
|
54
49
|
self.connection = Connection(
|
|
50
|
+
conn_id="test_conn_id",
|
|
55
51
|
conn_type="mysql",
|
|
56
52
|
login="login",
|
|
57
53
|
password="password",
|
|
@@ -91,7 +87,7 @@ class TestMySqlHookConn:
|
|
|
91
87
|
|
|
92
88
|
@mock.patch("MySQLdb.connect")
|
|
93
89
|
@pytest.mark.parametrize(
|
|
94
|
-
"connection_params, expected_uri",
|
|
90
|
+
("connection_params", "expected_uri"),
|
|
95
91
|
[
|
|
96
92
|
pytest.param(
|
|
97
93
|
{
|
|
@@ -194,7 +190,14 @@ class TestMySqlHookConn:
|
|
|
194
190
|
|
|
195
191
|
@mock.patch("MySQLdb.connect")
|
|
196
192
|
def test_get_conn_from_connection(self, mock_connect):
|
|
197
|
-
conn = Connection(
|
|
193
|
+
conn = Connection(
|
|
194
|
+
conn_id="test_conn_id",
|
|
195
|
+
conn_type="mysql",
|
|
196
|
+
login="login-conn",
|
|
197
|
+
password="password-conn",
|
|
198
|
+
host="host",
|
|
199
|
+
schema="schema",
|
|
200
|
+
)
|
|
198
201
|
hook = MySqlHook(connection=conn)
|
|
199
202
|
hook.get_conn()
|
|
200
203
|
mock_connect.assert_called_once_with(
|
|
@@ -203,7 +206,14 @@ class TestMySqlHookConn:
|
|
|
203
206
|
|
|
204
207
|
@mock.patch("MySQLdb.connect")
|
|
205
208
|
def test_get_conn_from_connection_with_schema(self, mock_connect):
|
|
206
|
-
conn = Connection(
|
|
209
|
+
conn = Connection(
|
|
210
|
+
conn_id="test_conn_id",
|
|
211
|
+
conn_type="mysql",
|
|
212
|
+
login="login-conn",
|
|
213
|
+
password="password-conn",
|
|
214
|
+
host="host",
|
|
215
|
+
schema="schema",
|
|
216
|
+
)
|
|
207
217
|
hook = MySqlHook(connection=conn, schema="schema-override")
|
|
208
218
|
hook.get_conn()
|
|
209
219
|
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",
|
|
@@ -19,7 +19,7 @@ from __future__ import annotations
|
|
|
19
19
|
from unittest.mock import patch
|
|
20
20
|
|
|
21
21
|
import pytest
|
|
22
|
-
from sqlalchemy import or_
|
|
22
|
+
from sqlalchemy import delete, or_
|
|
23
23
|
|
|
24
24
|
from airflow import models
|
|
25
25
|
from airflow.providers.mysql.transfers.s3_to_mysql import S3ToMySqlOperator
|
|
@@ -101,10 +101,8 @@ class TestS3ToMySqlTransfer:
|
|
|
101
101
|
|
|
102
102
|
def teardown_method(self):
|
|
103
103
|
with create_session() as session:
|
|
104
|
-
(
|
|
105
|
-
|
|
106
|
-
.filter(
|
|
104
|
+
session.execute(
|
|
105
|
+
delete(models.Connection).where(
|
|
107
106
|
or_(models.Connection.conn_id == "s3_test", models.Connection.conn_id == "mysql_test")
|
|
108
107
|
)
|
|
109
|
-
.delete()
|
|
110
108
|
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d4473555c0e7022e073489b7163d49102881a1a6
|
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/commits.rst
RENAMED
|
File without changes
|
{apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/conf.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|