apache-airflow-providers-postgres 6.4.0__tar.gz → 6.5.2rc1__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_postgres-6.5.2rc1/NOTICE +5 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/PKG-INFO +20 -15
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/README.rst +7 -6
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/changelog.rst +60 -5
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/index.rst +6 -6
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/provider.yaml +5 -1
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/pyproject.toml +13 -9
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/__init__.py +3 -3
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/dialects/postgres.py +2 -2
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/hooks/postgres.py +21 -17
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/assets/test_postgres.py +1 -1
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/hooks/test_postgres.py +13 -14
- {apache_airflow_providers_postgres-6.4.0/src/airflow/providers/postgres → apache_airflow_providers_postgres-6.5.2rc1}/LICENSE +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/connections/postgres.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/dialects.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/integration-logos/Postgres.png +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/operators.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/redirects.txt +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/assets/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/assets/postgres.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/dialects/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/get_provider_info.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/src/airflow/providers/postgres/hooks/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/system/postgres/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/system/postgres/example_postgres.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/assets/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/dialects/__init__.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/dialects/test_postgres.py +0 -0
- {apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/tests/unit/postgres/hooks/__init__.py +0 -0
{apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/PKG-INFO
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-postgres
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.5.2rc1
|
|
4
4
|
Summary: Provider package apache-airflow-providers-postgres for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,postgres,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,28 +15,30 @@ 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
|
-
|
|
25
|
-
Requires-Dist: apache-airflow
|
|
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
|
|
27
|
+
Requires-Dist: apache-airflow-providers-common-sql>=1.23.0rc1
|
|
26
28
|
Requires-Dist: psycopg2-binary>=2.9.9; python_version < '3.13'
|
|
27
29
|
Requires-Dist: psycopg2-binary>=2.9.10; python_version >= '3.13'
|
|
28
30
|
Requires-Dist: asyncpg>=0.30.0
|
|
29
|
-
Requires-Dist: apache-airflow-providers-amazon>=2.6.
|
|
30
|
-
Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft-azure"
|
|
31
|
+
Requires-Dist: apache-airflow-providers-amazon>=2.6.0rc1 ; extra == "amazon"
|
|
32
|
+
Requires-Dist: apache-airflow-providers-microsoft-azure>=12.8.0rc1 ; extra == "microsoft-azure"
|
|
31
33
|
Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
|
|
32
34
|
Requires-Dist: pandas>=2.1.2 ; extra == "pandas" and ( python_version <"3.13")
|
|
33
35
|
Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13")
|
|
34
36
|
Requires-Dist: polars>=1.26.0 ; extra == "polars"
|
|
35
37
|
Requires-Dist: psycopg[binary]>=3.2.9 ; extra == "psycopg"
|
|
38
|
+
Requires-Dist: sqlalchemy>=1.4.49 ; extra == "sqlalchemy"
|
|
36
39
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
37
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
38
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
40
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-postgres/6.5.2/changelog.html
|
|
41
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-postgres/6.5.2
|
|
39
42
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
40
43
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
41
44
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -46,6 +49,7 @@ Provides-Extra: openlineage
|
|
|
46
49
|
Provides-Extra: pandas
|
|
47
50
|
Provides-Extra: polars
|
|
48
51
|
Provides-Extra: psycopg
|
|
52
|
+
Provides-Extra: sqlalchemy
|
|
49
53
|
|
|
50
54
|
|
|
51
55
|
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
@@ -72,7 +76,7 @@ Provides-Extra: psycopg
|
|
|
72
76
|
|
|
73
77
|
Package ``apache-airflow-providers-postgres``
|
|
74
78
|
|
|
75
|
-
Release: ``6.
|
|
79
|
+
Release: ``6.5.2``
|
|
76
80
|
|
|
77
81
|
|
|
78
82
|
`PostgreSQL <https://www.postgresql.org/>`__
|
|
@@ -85,7 +89,7 @@ This is a provider package for ``postgres`` provider. All classes for this provi
|
|
|
85
89
|
are in ``airflow.providers.postgres`` python package.
|
|
86
90
|
|
|
87
91
|
You can find package information and changelog for the provider
|
|
88
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
92
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.5.2/>`_.
|
|
89
93
|
|
|
90
94
|
Installation
|
|
91
95
|
------------
|
|
@@ -102,8 +106,8 @@ Requirements
|
|
|
102
106
|
========================================== ======================================
|
|
103
107
|
PIP package Version required
|
|
104
108
|
========================================== ======================================
|
|
105
|
-
``apache-airflow`` ``>=2.
|
|
106
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
109
|
+
``apache-airflow`` ``>=2.11.0``
|
|
110
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
107
111
|
``apache-airflow-providers-common-sql`` ``>=1.23.0``
|
|
108
112
|
``psycopg2-binary`` ``>=2.9.9; python_version < "3.13"``
|
|
109
113
|
``psycopg2-binary`` ``>=2.9.10; python_version >= "3.13"``
|
|
@@ -139,8 +143,9 @@ Optional dependencies
|
|
|
139
143
|
=================== =====================================================================================
|
|
140
144
|
Extra Dependencies
|
|
141
145
|
=================== =====================================================================================
|
|
146
|
+
``sqlalchemy`` ``sqlalchemy>=1.4.49``
|
|
142
147
|
``amazon`` ``apache-airflow-providers-amazon>=2.6.0``
|
|
143
|
-
``microsoft.azure`` ``apache-airflow-providers-microsoft-azure``
|
|
148
|
+
``microsoft.azure`` ``apache-airflow-providers-microsoft-azure>=12.8.0``
|
|
144
149
|
``openlineage`` ``apache-airflow-providers-openlineage``
|
|
145
150
|
``pandas`` ``pandas>=2.1.2; python_version <"3.13"``, ``pandas>=2.2.3; python_version >="3.13"``
|
|
146
151
|
``polars`` ``polars>=1.26.0``
|
|
@@ -148,5 +153,5 @@ Extra Dependencies
|
|
|
148
153
|
=================== =====================================================================================
|
|
149
154
|
|
|
150
155
|
The changelog for the provider package can be found in the
|
|
151
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
156
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.5.2/changelog.html>`_.
|
|
152
157
|
|
{apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/README.rst
RENAMED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-postgres``
|
|
25
25
|
|
|
26
|
-
Release: ``6.
|
|
26
|
+
Release: ``6.5.2``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
`PostgreSQL <https://www.postgresql.org/>`__
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``postgres`` provider. All classes for this provi
|
|
|
36
36
|
are in ``airflow.providers.postgres`` 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-postgres/6.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.5.2/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -53,8 +53,8 @@ Requirements
|
|
|
53
53
|
========================================== ======================================
|
|
54
54
|
PIP package Version required
|
|
55
55
|
========================================== ======================================
|
|
56
|
-
``apache-airflow`` ``>=2.
|
|
57
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
56
|
+
``apache-airflow`` ``>=2.11.0``
|
|
57
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
58
58
|
``apache-airflow-providers-common-sql`` ``>=1.23.0``
|
|
59
59
|
``psycopg2-binary`` ``>=2.9.9; python_version < "3.13"``
|
|
60
60
|
``psycopg2-binary`` ``>=2.9.10; python_version >= "3.13"``
|
|
@@ -90,8 +90,9 @@ Optional dependencies
|
|
|
90
90
|
=================== =====================================================================================
|
|
91
91
|
Extra Dependencies
|
|
92
92
|
=================== =====================================================================================
|
|
93
|
+
``sqlalchemy`` ``sqlalchemy>=1.4.49``
|
|
93
94
|
``amazon`` ``apache-airflow-providers-amazon>=2.6.0``
|
|
94
|
-
``microsoft.azure`` ``apache-airflow-providers-microsoft-azure``
|
|
95
|
+
``microsoft.azure`` ``apache-airflow-providers-microsoft-azure>=12.8.0``
|
|
95
96
|
``openlineage`` ``apache-airflow-providers-openlineage``
|
|
96
97
|
``pandas`` ``pandas>=2.1.2; python_version <"3.13"``, ``pandas>=2.2.3; python_version >="3.13"``
|
|
97
98
|
``polars`` ``polars>=1.26.0``
|
|
@@ -99,4 +100,4 @@ Extra Dependencies
|
|
|
99
100
|
=================== =====================================================================================
|
|
100
101
|
|
|
101
102
|
The changelog for the provider package can be found in the
|
|
102
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
103
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.5.2/changelog.html>`_.
|
|
@@ -27,6 +27,64 @@
|
|
|
27
27
|
Changelog
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
|
+
6.5.2
|
|
31
|
+
.....
|
|
32
|
+
|
|
33
|
+
Misc
|
|
34
|
+
~~~~
|
|
35
|
+
|
|
36
|
+
* ``Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)``
|
|
37
|
+
* ``New year means updated Copyright notices (#60344)``
|
|
38
|
+
* ``Make SQLAlchemy optional for Postgres provider (#60257)``
|
|
39
|
+
* ``Migrate postgres provider to use airflow.sdk.configuration.conf (#59984)``
|
|
40
|
+
|
|
41
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
42
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
43
|
+
|
|
44
|
+
6.5.1
|
|
45
|
+
.....
|
|
46
|
+
|
|
47
|
+
Misc
|
|
48
|
+
~~~~
|
|
49
|
+
|
|
50
|
+
* ``Add backcompat for exceptions in providers (#58727)``
|
|
51
|
+
|
|
52
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
53
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
54
|
+
|
|
55
|
+
6.5.0
|
|
56
|
+
.....
|
|
57
|
+
|
|
58
|
+
.. note::
|
|
59
|
+
This release of provider is only available for Airflow 2.11+ as explained in the
|
|
60
|
+
Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
|
|
61
|
+
|
|
62
|
+
Misc
|
|
63
|
+
~~~~
|
|
64
|
+
|
|
65
|
+
* ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
|
|
66
|
+
|
|
67
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
68
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
69
|
+
* ``Updates to release process of providers (#58316)``
|
|
70
|
+
* ``Remove SDK reference for NOTSET in Airflow Core (#58258)``
|
|
71
|
+
|
|
72
|
+
6.4.1
|
|
73
|
+
.....
|
|
74
|
+
|
|
75
|
+
Misc
|
|
76
|
+
~~~~
|
|
77
|
+
|
|
78
|
+
* ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
|
|
79
|
+
* ``better error handling in SnowflakeHook and PostgresHook when old version of AzureBaseHook (#57184)``
|
|
80
|
+
|
|
81
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
82
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
83
|
+
* ``Delete all unnecessary LICENSE Files (#58191)``
|
|
84
|
+
* ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
|
|
85
|
+
* ``Enable PT006 rule to postgres Provider test (#57934)``
|
|
86
|
+
* ``Fix code formatting via ruff preview (#57641)``
|
|
87
|
+
|
|
30
88
|
6.4.0
|
|
31
89
|
.....
|
|
32
90
|
|
|
@@ -79,8 +137,6 @@ Doc-only
|
|
|
79
137
|
.. Below changes are excluded from the changelog. Move them to
|
|
80
138
|
appropriate section above if needed. Do not delete the lines(!):
|
|
81
139
|
* ``Switch pre-commit to prek (#54258)``
|
|
82
|
-
|
|
83
|
-
.. Review and move the new changes to one of the sections above:
|
|
84
140
|
* ``Fix Airflow 2 reference in README/index of providers (#55240)``
|
|
85
141
|
|
|
86
142
|
6.2.3
|
|
@@ -256,8 +312,6 @@ Misc
|
|
|
256
312
|
.. Below changes are excluded from the changelog. Move them to
|
|
257
313
|
appropriate section above if needed. Do not delete the lines(!):
|
|
258
314
|
* ``Use Python 3.9 as target version for Ruff & Black rules (#44298)``
|
|
259
|
-
|
|
260
|
-
.. Review and move the new changes to one of the sections above:
|
|
261
315
|
* ``Update path of example dags in docs (#45069)``
|
|
262
316
|
* ``Allow configuration of sqlalchemy query parameter for JdbcHook and PostgresHook through extras (#44910)``
|
|
263
317
|
|
|
@@ -628,7 +682,8 @@ Misc
|
|
|
628
682
|
|
|
629
683
|
* ``Add common-sql lower bound for common-sql (#25789)``
|
|
630
684
|
|
|
631
|
-
..
|
|
685
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
686
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
632
687
|
* ``Rename schema to database in 'PostgresHook' (#26436)``
|
|
633
688
|
* ``Revert "Rename schema to database in 'PostgresHook' (#26436)" (#26734)``
|
|
634
689
|
* ``Apply PEP-563 (Postponed Evaluation of Annotations) to non-core airflow (#26289)``
|
|
@@ -78,7 +78,7 @@ apache-airflow-providers-postgres package
|
|
|
78
78
|
`PostgreSQL <https://www.postgresql.org/>`__
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
Release: 6.
|
|
81
|
+
Release: 6.5.2
|
|
82
82
|
|
|
83
83
|
Provider package
|
|
84
84
|
----------------
|
|
@@ -96,13 +96,13 @@ For the minimum Airflow version supported, see ``Requirements`` below.
|
|
|
96
96
|
Requirements
|
|
97
97
|
------------
|
|
98
98
|
|
|
99
|
-
The minimum Apache Airflow version supported by this provider distribution is ``2.
|
|
99
|
+
The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``.
|
|
100
100
|
|
|
101
101
|
========================================== ======================================
|
|
102
102
|
PIP package Version required
|
|
103
103
|
========================================== ======================================
|
|
104
|
-
``apache-airflow`` ``>=2.
|
|
105
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
104
|
+
``apache-airflow`` ``>=2.11.0``
|
|
105
|
+
``apache-airflow-providers-common-compat`` ``>=1.12.0``
|
|
106
106
|
``apache-airflow-providers-common-sql`` ``>=1.23.0``
|
|
107
107
|
``psycopg2-binary`` ``>=2.9.9; python_version < "3.13"``
|
|
108
108
|
``psycopg2-binary`` ``>=2.9.10; python_version >= "3.13"``
|
|
@@ -138,5 +138,5 @@ Downloading official packages
|
|
|
138
138
|
You can download officially released packages and verify their checksums and signatures from the
|
|
139
139
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
140
140
|
|
|
141
|
-
* `The apache-airflow-providers-postgres 6.
|
|
142
|
-
* `The apache-airflow-providers-postgres 6.
|
|
141
|
+
* `The apache-airflow-providers-postgres 6.5.2 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2.tar.gz.sha512>`__)
|
|
142
|
+
* `The apache-airflow-providers-postgres 6.5.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_postgres-6.5.2-py3-none-any.whl.sha512>`__)
|
{apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/provider.yaml
RENAMED
|
@@ -22,12 +22,16 @@ description: |
|
|
|
22
22
|
`PostgreSQL <https://www.postgresql.org/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1768335516
|
|
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.5.2
|
|
32
|
+
- 6.5.1
|
|
33
|
+
- 6.5.0
|
|
34
|
+
- 6.4.1
|
|
31
35
|
- 6.4.0
|
|
32
36
|
- 6.3.0
|
|
33
37
|
- 6.2.3
|
|
@@ -25,9 +25,11 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-postgres"
|
|
28
|
-
version = "6.
|
|
28
|
+
version = "6.5.2rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-postgres 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,9 +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.
|
|
61
|
-
"apache-airflow-providers-common-compat>=1.
|
|
62
|
-
"apache-airflow-providers-common-sql>=1.23.
|
|
61
|
+
"apache-airflow>=2.11.0rc1",
|
|
62
|
+
"apache-airflow-providers-common-compat>=1.12.0rc1",
|
|
63
|
+
"apache-airflow-providers-common-sql>=1.23.0rc1",
|
|
63
64
|
"psycopg2-binary>=2.9.9; python_version < '3.13'",
|
|
64
65
|
"psycopg2-binary>=2.9.10; python_version >= '3.13'",
|
|
65
66
|
"asyncpg>=0.30.0",
|
|
@@ -68,11 +69,14 @@ dependencies = [
|
|
|
68
69
|
# The optional dependencies should be modified in place in the generated file
|
|
69
70
|
# Any change in the dependencies is preserved when the file is regenerated
|
|
70
71
|
[project.optional-dependencies]
|
|
72
|
+
sqlalchemy = [
|
|
73
|
+
"sqlalchemy>=1.4.49"
|
|
74
|
+
]
|
|
71
75
|
"amazon" = [
|
|
72
|
-
"apache-airflow-providers-amazon>=2.6.
|
|
76
|
+
"apache-airflow-providers-amazon>=2.6.0rc1",
|
|
73
77
|
]
|
|
74
78
|
"microsoft.azure" = [
|
|
75
|
-
"apache-airflow-providers-microsoft-azure"
|
|
79
|
+
"apache-airflow-providers-microsoft-azure>=12.8.0rc1"
|
|
76
80
|
]
|
|
77
81
|
"openlineage" = [
|
|
78
82
|
"apache-airflow-providers-openlineage"
|
|
@@ -130,8 +134,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
130
134
|
apache-airflow-providers-standard = {workspace = true}
|
|
131
135
|
|
|
132
136
|
[project.urls]
|
|
133
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
134
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.
|
|
137
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-postgres/6.5.2"
|
|
138
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-postgres/6.5.2/changelog.html"
|
|
135
139
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
136
140
|
"Source Code" = "https://github.com/apache/airflow"
|
|
137
141
|
"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.5.2"
|
|
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-postgres:{__version__}` needs Apache Airflow 2.
|
|
38
|
+
f"The package `apache-airflow-providers-postgres:{__version__}` needs Apache Airflow 2.11.0+"
|
|
39
39
|
)
|
|
@@ -41,7 +41,7 @@ class PostgresDialect(Dialect):
|
|
|
41
41
|
"""
|
|
42
42
|
if schema is None:
|
|
43
43
|
table, schema = self.extract_schema_from_table(table)
|
|
44
|
-
table = self.unescape_word(table)
|
|
44
|
+
table = self.unescape_word(table) or table
|
|
45
45
|
schema = self.unescape_word(schema) if schema else None
|
|
46
46
|
query = """
|
|
47
47
|
select kcu.column_name
|
|
@@ -75,7 +75,7 @@ class PostgresDialect(Dialect):
|
|
|
75
75
|
) -> list[str] | None:
|
|
76
76
|
if schema is None:
|
|
77
77
|
table, schema = self.extract_schema_from_table(table)
|
|
78
|
-
table = self.unescape_word(table)
|
|
78
|
+
table = self.unescape_word(table) or table
|
|
79
79
|
schema = self.unescape_word(schema) if schema else None
|
|
80
80
|
query = """
|
|
81
81
|
select column_name,
|
|
@@ -24,18 +24,16 @@ from copy import deepcopy
|
|
|
24
24
|
from typing import TYPE_CHECKING, Any, Literal, Protocol, TypeAlias, cast, overload
|
|
25
25
|
|
|
26
26
|
import psycopg2
|
|
27
|
-
import psycopg2.extensions
|
|
28
27
|
import psycopg2.extras
|
|
29
28
|
from more_itertools import chunked
|
|
30
29
|
from psycopg2.extras import DictCursor, NamedTupleCursor, RealDictCursor, execute_batch
|
|
31
|
-
from sqlalchemy.engine import URL
|
|
32
30
|
|
|
33
|
-
from airflow.
|
|
34
|
-
from airflow.exceptions import (
|
|
31
|
+
from airflow.providers.common.compat.sdk import (
|
|
35
32
|
AirflowException,
|
|
36
33
|
AirflowOptionalProviderFeatureException,
|
|
34
|
+
Connection,
|
|
35
|
+
conf,
|
|
37
36
|
)
|
|
38
|
-
from airflow.providers.common.compat.sdk import Connection
|
|
39
37
|
from airflow.providers.common.sql.hooks.sql import DbApiHook
|
|
40
38
|
from airflow.providers.postgres.dialects.postgres import PostgresDialect
|
|
41
39
|
|
|
@@ -59,6 +57,7 @@ if USE_PSYCOPG3:
|
|
|
59
57
|
if TYPE_CHECKING:
|
|
60
58
|
from pandas import DataFrame as PandasDataFrame
|
|
61
59
|
from polars import DataFrame as PolarsDataFrame
|
|
60
|
+
from sqlalchemy.engine import URL
|
|
62
61
|
|
|
63
62
|
from airflow.providers.common.sql.dialects.dialect import Dialect
|
|
64
63
|
from airflow.providers.openlineage.sqlparser import DatabaseInfo
|
|
@@ -172,6 +171,13 @@ class PostgresHook(DbApiHook):
|
|
|
172
171
|
|
|
173
172
|
@property
|
|
174
173
|
def sqlalchemy_url(self) -> URL:
|
|
174
|
+
try:
|
|
175
|
+
from sqlalchemy.engine import URL
|
|
176
|
+
except (ImportError, ModuleNotFoundError) as err:
|
|
177
|
+
raise AirflowOptionalProviderFeatureException(
|
|
178
|
+
"SQLAlchemy is not installed. Please install it with "
|
|
179
|
+
"`pip install apache-airflow-providers-postgres[sqlalchemy]`."
|
|
180
|
+
) from err
|
|
175
181
|
conn = self.connection
|
|
176
182
|
query = conn.extra_dejson.get("sqlalchemy_query", {})
|
|
177
183
|
if not isinstance(query, dict):
|
|
@@ -458,7 +464,7 @@ class PostgresHook(DbApiHook):
|
|
|
458
464
|
try:
|
|
459
465
|
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
|
|
460
466
|
except ImportError:
|
|
461
|
-
from airflow.
|
|
467
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
462
468
|
|
|
463
469
|
raise AirflowOptionalProviderFeatureException(
|
|
464
470
|
"apache-airflow-providers-amazon not installed, run: "
|
|
@@ -522,19 +528,17 @@ class PostgresHook(DbApiHook):
|
|
|
522
528
|
azure_conn = Connection.get(azure_conn_id)
|
|
523
529
|
except AttributeError:
|
|
524
530
|
azure_conn = Connection.get_connection_from_secrets(azure_conn_id) # type: ignore[attr-defined]
|
|
525
|
-
azure_base_hook: AzureBaseHook = azure_conn.get_hook()
|
|
526
|
-
scope = conf.get("postgres", "azure_oauth_scope", fallback=self.default_azure_oauth_scope)
|
|
527
531
|
try:
|
|
528
|
-
|
|
529
|
-
except
|
|
530
|
-
if
|
|
531
|
-
raise
|
|
532
|
-
"
|
|
533
|
-
"Please upgrade apache-airflow-providers-microsoft-azure>=12.8.0"
|
|
534
|
-
name=e.name,
|
|
535
|
-
obj=e.obj,
|
|
532
|
+
azure_base_hook: AzureBaseHook = azure_conn.get_hook()
|
|
533
|
+
except TypeError as e:
|
|
534
|
+
if "required positional argument: 'sdk_client'" in str(e):
|
|
535
|
+
raise AirflowOptionalProviderFeatureException(
|
|
536
|
+
"Getting azure token is not supported by current version of 'AzureBaseHook'. "
|
|
537
|
+
"Please upgrade apache-airflow-providers-microsoft-azure>=12.8.0"
|
|
536
538
|
) from e
|
|
537
539
|
raise
|
|
540
|
+
scope = conf.get("postgres", "azure_oauth_scope", fallback=self.default_azure_oauth_scope)
|
|
541
|
+
token = azure_base_hook.get_token(scope).token
|
|
538
542
|
return cast("str", conn.login or azure_conn.login), token, conn.port or 5432
|
|
539
543
|
|
|
540
544
|
def get_table_primary_key(self, table: str, schema: str | None = "public") -> list[str] | None:
|
|
@@ -568,7 +572,7 @@ class PostgresHook(DbApiHook):
|
|
|
568
572
|
try:
|
|
569
573
|
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
|
|
570
574
|
except ImportError:
|
|
571
|
-
from airflow.
|
|
575
|
+
from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
|
|
572
576
|
|
|
573
577
|
raise AirflowOptionalProviderFeatureException(
|
|
574
578
|
"apache-airflow-providers-amazon not installed, run: "
|
|
@@ -27,14 +27,13 @@ import polars as pl
|
|
|
27
27
|
import pytest
|
|
28
28
|
import sqlalchemy
|
|
29
29
|
|
|
30
|
-
from airflow.exceptions import AirflowException
|
|
31
30
|
from airflow.models import Connection
|
|
31
|
+
from airflow.providers.common.compat.sdk import AirflowException, AirflowOptionalProviderFeatureException
|
|
32
32
|
from airflow.providers.postgres.dialects.postgres import PostgresDialect
|
|
33
33
|
from airflow.providers.postgres.hooks.postgres import CompatConnection, PostgresHook
|
|
34
|
-
from airflow.utils.types import NOTSET
|
|
35
34
|
|
|
36
35
|
from tests_common.test_utils.common_sql import mock_db_hook
|
|
37
|
-
from tests_common.test_utils.version_compat import SQLALCHEMY_V_1_4
|
|
36
|
+
from tests_common.test_utils.version_compat import NOTSET, SQLALCHEMY_V_1_4
|
|
38
37
|
|
|
39
38
|
INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, description, host, {}, login, password, port, is_encrypted, is_extra_encrypted, extra) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
|
|
40
39
|
|
|
@@ -127,7 +126,7 @@ class TestPostgresHookConn:
|
|
|
127
126
|
@pytest.mark.parametrize("aws_conn_id", [NOTSET, None, "mock_aws_conn"])
|
|
128
127
|
@pytest.mark.parametrize("port", [5432, 5439, None])
|
|
129
128
|
@pytest.mark.parametrize(
|
|
130
|
-
"host,conn_cluster_identifier,expected_host",
|
|
129
|
+
("host", "conn_cluster_identifier", "expected_host"),
|
|
131
130
|
[
|
|
132
131
|
(
|
|
133
132
|
"cluster-identifier.ccdfre4hpd39h.us-east-1.redshift.amazonaws.com",
|
|
@@ -297,7 +296,7 @@ class TestPostgresHookConn:
|
|
|
297
296
|
@pytest.mark.parametrize("aws_conn_id", [NOTSET, None, "mock_aws_conn"])
|
|
298
297
|
@pytest.mark.parametrize("port", [5432, 5439, None])
|
|
299
298
|
@pytest.mark.parametrize(
|
|
300
|
-
"host,conn_cluster_identifier,expected_cluster_identifier",
|
|
299
|
+
("host", "conn_cluster_identifier", "expected_cluster_identifier"),
|
|
301
300
|
[
|
|
302
301
|
(
|
|
303
302
|
"cluster-identifier.ccdfre4hpd39h.us-east-1.redshift.amazonaws.com",
|
|
@@ -373,7 +372,7 @@ class TestPostgresHookConn:
|
|
|
373
372
|
@pytest.mark.parametrize("aws_conn_id", [NOTSET, None, "mock_aws_conn"])
|
|
374
373
|
@pytest.mark.parametrize("port", [5432, 5439, None])
|
|
375
374
|
@pytest.mark.parametrize(
|
|
376
|
-
"host,conn_workgroup_name,expected_workgroup_name",
|
|
375
|
+
("host", "conn_workgroup_name", "expected_workgroup_name"),
|
|
377
376
|
[
|
|
378
377
|
(
|
|
379
378
|
"serverless-workgroup.ccdfre4hpd39h.us-east-1.redshift.amazonaws.com",
|
|
@@ -471,22 +470,22 @@ class TestPostgresHookConn:
|
|
|
471
470
|
|
|
472
471
|
assert mock_db_token in self.db_hook.sqlalchemy_url
|
|
473
472
|
|
|
474
|
-
def
|
|
475
|
-
|
|
473
|
+
def test_get_azure_iam_token_expect_failure_on_older_azure_provider_package(self, mocker):
|
|
474
|
+
class MockAzureBaseHookOldVersion:
|
|
475
|
+
"""Simulate an old version of AzureBaseHook where sdk_client is required."""
|
|
476
476
|
|
|
477
|
-
|
|
478
|
-
def __init__(self):
|
|
477
|
+
def __init__(self, sdk_client, conn_id="azure_default"):
|
|
479
478
|
pass
|
|
480
479
|
|
|
481
480
|
azure_conn_id = "azure_test_conn"
|
|
482
481
|
mock_connection_class = mocker.patch("airflow.providers.postgres.hooks.postgres.Connection")
|
|
483
|
-
mock_connection_class.get.return_value.get_hook
|
|
482
|
+
mock_connection_class.get.return_value.get_hook = MockAzureBaseHookOldVersion
|
|
484
483
|
|
|
485
484
|
self.connection.extra = json.dumps({"iam": True, "azure_conn_id": azure_conn_id})
|
|
486
485
|
with pytest.raises(
|
|
487
|
-
|
|
486
|
+
AirflowOptionalProviderFeatureException,
|
|
488
487
|
match=(
|
|
489
|
-
"
|
|
488
|
+
"Getting azure token is not supported.*"
|
|
490
489
|
"Please upgrade apache-airflow-providers-microsoft-azure>="
|
|
491
490
|
),
|
|
492
491
|
):
|
|
@@ -690,7 +689,7 @@ class TestPostgresHook:
|
|
|
690
689
|
assert sorted(input_data) == sorted(results)
|
|
691
690
|
|
|
692
691
|
@pytest.mark.parametrize(
|
|
693
|
-
"df_type, expected_type",
|
|
692
|
+
("df_type", "expected_type"),
|
|
694
693
|
[
|
|
695
694
|
("pandas", pd.DataFrame),
|
|
696
695
|
("polars", pl.DataFrame),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_providers_postgres-6.4.0 → apache_airflow_providers_postgres-6.5.2rc1}/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
|