apache-airflow-providers-teradata 2.6.1__py3-none-any.whl → 3.0.0__py3-none-any.whl

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.

Potentially problematic release.


This version of apache-airflow-providers-teradata might be problematic. Click here for more details.

@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "2.6.1"
32
+ __version__ = "3.0.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
- "2.8.0"
35
+ "2.9.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-teradata:{__version__}` needs Apache Airflow 2.8.0+"
38
+ f"The package `apache-airflow-providers-teradata:{__version__}` needs Apache Airflow 2.9.0+"
39
39
  )
@@ -28,10 +28,21 @@ def get_provider_info():
28
28
  "name": "Teradata",
29
29
  "description": "`Teradata <https://www.teradata.com/>`__\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1731571121,
32
- "versions": ["2.6.1", "2.6.0", "2.5.0", "2.4.0", "2.3.0", "2.2.0", "2.1.1", "2.1.0", "2.0.0"],
31
+ "source-date-epoch": 1734537340,
32
+ "versions": [
33
+ "3.0.0",
34
+ "2.6.1",
35
+ "2.6.0",
36
+ "2.5.0",
37
+ "2.4.0",
38
+ "2.3.0",
39
+ "2.2.0",
40
+ "2.1.1",
41
+ "2.1.0",
42
+ "2.0.0",
43
+ ],
33
44
  "dependencies": [
34
- "apache-airflow>=2.8.0",
45
+ "apache-airflow>=2.9.0",
35
46
  "apache-airflow-providers-common-sql>=1.20.0",
36
47
  "teradatasqlalchemy>=17.20.0.0",
37
48
  "teradatasql>=17.20.0.28",
@@ -20,14 +20,12 @@
20
20
  from __future__ import annotations
21
21
 
22
22
  import re
23
- import warnings
24
23
  from typing import TYPE_CHECKING, Any
25
24
 
26
25
  import sqlalchemy
27
26
  import teradatasql
28
27
  from teradatasql import TeradataConnection
29
28
 
30
- from airflow.exceptions import AirflowProviderDeprecationWarning
31
29
  from airflow.providers.common.sql.hooks.sql import DbApiHook
32
30
 
33
31
  if TYPE_CHECKING:
@@ -160,40 +158,6 @@ class TeradataHook(DbApiHook):
160
158
  except Exception as ex:
161
159
  self.log.error("Error occurred while setting session query band: %s ", str(ex))
162
160
 
163
- def bulk_insert_rows(
164
- self,
165
- table: str,
166
- rows: list[tuple],
167
- target_fields: list[str] | None = None,
168
- commit_every: int = 5000,
169
- ):
170
- """
171
- Use :func:`insert_rows` instead, this is deprecated.
172
-
173
- Insert bulk of records into Teradata SQL Database.
174
-
175
- This uses prepared statements via `executemany()`. For best performance,
176
- pass in `rows` as an iterator.
177
-
178
- :param table: target Teradata database table, use dot notation to target a
179
- specific database
180
- :param rows: the rows to insert into the table
181
- :param target_fields: the names of the columns to fill in the table, default None.
182
- If None, each row should have some order as table columns name
183
- :param commit_every: the maximum number of rows to insert in one transaction
184
- Default 5000. Set greater than 0. Set 1 to insert each row in each transaction
185
- """
186
- warnings.warn(
187
- "bulk_insert_rows is deprecated. Please use the insert_rows method instead.",
188
- AirflowProviderDeprecationWarning,
189
- stacklevel=2,
190
- )
191
-
192
- if not rows:
193
- raise ValueError("parameter rows could not be None or empty iterable")
194
-
195
- self.insert_rows(table=table, rows=rows, target_fields=target_fields, commit_every=commit_every)
196
-
197
161
  def _get_conn_config_teradatasql(self) -> dict[str, Any]:
198
162
  """Return set of config params required for connecting to Teradata DB using teradatasql client."""
199
163
  conn: Connection = self.get_connection(self.get_conn_id())
@@ -17,7 +17,8 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
- from typing import TYPE_CHECKING, ClassVar, Sequence
20
+ from collections.abc import Sequence
21
+ from typing import TYPE_CHECKING, ClassVar
21
22
 
22
23
  from airflow.models import BaseOperator
23
24
  from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
@@ -30,8 +30,9 @@ from airflow.providers.teradata.utils.constants import Constants
30
30
  if TYPE_CHECKING:
31
31
  from airflow.utils.context import Context
32
32
 
33
+ from collections.abc import Sequence
33
34
  from datetime import timedelta
34
- from typing import TYPE_CHECKING, Any, Sequence, cast
35
+ from typing import TYPE_CHECKING, Any, cast
35
36
 
36
37
  from airflow.providers.teradata.triggers.teradata_compute_cluster import TeradataComputeClusterSyncTrigger
37
38
 
@@ -17,8 +17,9 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ from collections.abc import Sequence
20
21
  from textwrap import dedent
21
- from typing import TYPE_CHECKING, Sequence
22
+ from typing import TYPE_CHECKING
22
23
 
23
24
  from airflow.models import BaseOperator
24
25
 
@@ -17,8 +17,9 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ from collections.abc import Sequence
20
21
  from textwrap import dedent
21
- from typing import TYPE_CHECKING, Sequence
22
+ from typing import TYPE_CHECKING
22
23
 
23
24
  from airflow.models import BaseOperator
24
25
 
@@ -17,8 +17,9 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ from collections.abc import Sequence
20
21
  from functools import cached_property
21
- from typing import TYPE_CHECKING, Sequence
22
+ from typing import TYPE_CHECKING
22
23
 
23
24
  from airflow.models import BaseOperator
24
25
  from airflow.providers.teradata.hooks.teradata import TeradataHook
@@ -90,7 +91,7 @@ class TeradataToTeradataOperator(BaseOperator):
90
91
  rows_total = 0
91
92
  if len(target_fields) != 0:
92
93
  for rows in iter(lambda: cursor.fetchmany(self.rows_chunk), []):
93
- dest_hook.bulk_insert_rows(
94
+ dest_hook.insert_rows(
94
95
  self.destination_table,
95
96
  rows,
96
97
  target_fields=target_fields,
@@ -17,7 +17,8 @@
17
17
  from __future__ import annotations
18
18
 
19
19
  import asyncio
20
- from typing import Any, AsyncIterator
20
+ from collections.abc import AsyncIterator
21
+ from typing import Any
21
22
 
22
23
  from airflow.exceptions import AirflowException
23
24
  from airflow.providers.common.sql.hooks.sql import fetch_one_handler
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: apache-airflow-providers-teradata
3
- Version: 2.6.1
3
+ Version: 3.0.0
4
4
  Summary: Provider package apache-airflow-providers-teradata for Apache Airflow
5
5
  Keywords: airflow-provider,teradata,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -21,21 +21,19 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: System :: Monitoring
23
23
  Requires-Dist: apache-airflow-providers-common-sql>=1.20.0
24
- Requires-Dist: apache-airflow>=2.8.0
24
+ Requires-Dist: apache-airflow>=2.9.0
25
25
  Requires-Dist: teradatasql>=17.20.0.28
26
26
  Requires-Dist: teradatasqlalchemy>=17.20.0.0
27
27
  Requires-Dist: apache-airflow-providers-amazon ; extra == "amazon"
28
- Requires-Dist: apache-airflow-providers-common-sql ; extra == "common-sql"
29
28
  Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft-azure"
30
29
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
31
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-teradata/2.6.1/changelog.html
32
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-teradata/2.6.1
30
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-teradata/3.0.0/changelog.html
31
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-teradata/3.0.0
33
32
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
34
33
  Project-URL: Source Code, https://github.com/apache/airflow
35
- Project-URL: Twitter, https://twitter.com/ApacheAirflow
34
+ Project-URL: Twitter, https://x.com/ApacheAirflow
36
35
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
37
36
  Provides-Extra: amazon
38
- Provides-Extra: common-sql
39
37
  Provides-Extra: microsoft-azure
40
38
 
41
39
 
@@ -82,7 +80,7 @@ Provides-Extra: microsoft-azure
82
80
 
83
81
  Package ``apache-airflow-providers-teradata``
84
82
 
85
- Release: ``2.6.1``
83
+ Release: ``3.0.0``
86
84
 
87
85
 
88
86
  `Teradata <https://www.teradata.com/>`__
@@ -95,7 +93,7 @@ This is a provider package for ``teradata`` provider. All classes for this provi
95
93
  are in ``airflow.providers.teradata`` python package.
96
94
 
97
95
  You can find package information and changelog for the provider
98
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-teradata/2.6.1/>`_.
96
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-teradata/3.0.0/>`_.
99
97
 
100
98
  Installation
101
99
  ------------
@@ -112,7 +110,7 @@ Requirements
112
110
  ======================================= ==================
113
111
  PIP package Version required
114
112
  ======================================= ==================
115
- ``apache-airflow`` ``>=2.8.0``
113
+ ``apache-airflow`` ``>=2.9.0``
116
114
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
117
115
  ``teradatasqlalchemy`` ``>=17.20.0.0``
118
116
  ``teradatasql`` ``>=17.20.0.28``
@@ -140,4 +138,4 @@ Dependent package
140
138
  ====================================================================================================================== ===================
141
139
 
142
140
  The changelog for the provider package can be found in the
143
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-teradata/2.6.1/changelog.html>`_.
141
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-teradata/3.0.0/changelog.html>`_.
@@ -1,20 +1,20 @@
1
1
  airflow/providers/teradata/LICENSE,sha256=FFb4jd2AXnOOf7XLP04pQW6jbdhG49TxlGY6fFpCV1Y,13609
2
- airflow/providers/teradata/__init__.py,sha256=5XICn5UbzM-ki6gFS51rvnv8a7b5pb3Ly7zROXVYXMw,1495
3
- airflow/providers/teradata/get_provider_info.py,sha256=xtMccdQKfmreTpGOpKGJswxOy0TPem_4ZMLtdE0rQv8,4365
2
+ airflow/providers/teradata/__init__.py,sha256=w662JZ_ymuLRG3e7u6NZdrE9HiuBnxvoygFwgiicUF8,1495
3
+ airflow/providers/teradata/get_provider_info.py,sha256=20V2Zd7nyvMfYXeokO6H0FeUwwnsNm4SKJItu1ots9Y,4505
4
4
  airflow/providers/teradata/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
5
- airflow/providers/teradata/hooks/teradata.py,sha256=3v8blN5bkOuDqsHRQJKXIcmH_nwZlmOiF_BOED_z7KA,12293
5
+ airflow/providers/teradata/hooks/teradata.py,sha256=v7jCwOTBlAMtnR5cAakkNn0WSYGELcEACmV8I7yxTW0,10851
6
6
  airflow/providers/teradata/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
7
- airflow/providers/teradata/operators/teradata.py,sha256=jPM_ONTjY0-xza4vUoLTg35VS1mZ4buaHrer5bOjBso,3657
8
- airflow/providers/teradata/operators/teradata_compute_cluster.py,sha256=zmo_rPf9GqsY5-0_FAJBPa6M1u1XIbsfx_BDBIoIrsw,21695
7
+ airflow/providers/teradata/operators/teradata.py,sha256=iL8F17b2YxVkKl3jl5t8fOxOBzbOkYCP81nh4_X1oW8,3684
8
+ airflow/providers/teradata/operators/teradata_compute_cluster.py,sha256=_ySECC8K-hFNfuOWEA8H4AY6c3NqVYpPbkcGh8r4Wbg,21722
9
9
  airflow/providers/teradata/transfers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
10
- airflow/providers/teradata/transfers/azure_blob_to_teradata.py,sha256=nsQclRtIiLgDaxeTY8uDNfQxBh5VHuV8ZH1mEXWeUu0,5625
11
- airflow/providers/teradata/transfers/s3_to_teradata.py,sha256=w14RG_cRFX5BKIbru_cg5C7WXpR0NF1bNZhvcwn7-bQ,5485
12
- airflow/providers/teradata/transfers/teradata_to_teradata.py,sha256=WketoakWYtYdMn7W3hR55otQJqQSKB_dKHTtYLc4mco,3834
10
+ airflow/providers/teradata/transfers/azure_blob_to_teradata.py,sha256=Kcm97lJXAkNSdQf9u3yYY9iq9JtjB_Sr96nHqJBLNlQ,5652
11
+ airflow/providers/teradata/transfers/s3_to_teradata.py,sha256=IWi6y575u0ZhBsNNuHpuChSNkUD9qA9nojz69ByM_xQ,5512
12
+ airflow/providers/teradata/transfers/teradata_to_teradata.py,sha256=SuOLwxKfXZnUhymmY1Jm_afuHC34MxpUtnOL4aDC4uQ,3856
13
13
  airflow/providers/teradata/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
14
- airflow/providers/teradata/triggers/teradata_compute_cluster.py,sha256=IAKuID5abyJknTOn20BznQ0WZugakFTfr806imYcMpY,6955
14
+ airflow/providers/teradata/triggers/teradata_compute_cluster.py,sha256=obMFTVHs5Q6xR6CTV15aLL2sAAmuMCXlomu7P5YEOWQ,6982
15
15
  airflow/providers/teradata/utils/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
16
16
  airflow/providers/teradata/utils/constants.py,sha256=ro1FVNsAakal8_uX27aN0DTVO0T9FG4fv9HzBIY2I-w,2253
17
- apache_airflow_providers_teradata-2.6.1.dist-info/entry_points.txt,sha256=JbigXoUoKVSNWG-_-029FCCuehMOmAvuSnNGZ9Bz1Kc,104
18
- apache_airflow_providers_teradata-2.6.1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
19
- apache_airflow_providers_teradata-2.6.1.dist-info/METADATA,sha256=nwo6SEMht1pSS057J0mIfY8alGRe7nwStjgxrx9BgDY,6734
20
- apache_airflow_providers_teradata-2.6.1.dist-info/RECORD,,
17
+ apache_airflow_providers_teradata-3.0.0.dist-info/entry_points.txt,sha256=JbigXoUoKVSNWG-_-029FCCuehMOmAvuSnNGZ9Bz1Kc,104
18
+ apache_airflow_providers_teradata-3.0.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
19
+ apache_airflow_providers_teradata-3.0.0.dist-info/METADATA,sha256=jHd7ageguwnjKKRFP0Elo0Hx8SkQMN9RGp4mVFNOHDo,6626
20
+ apache_airflow_providers_teradata-3.0.0.dist-info/RECORD,,