apache-airflow-providers-common-sql 1.28.1rc1__py3-none-any.whl → 1.30.0rc2__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.
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.28.1"
32
+ __version__ = "1.30.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
- "2.10.0"
35
+ "2.11.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-common-sql:{__version__}` needs Apache Airflow 2.10.0+"
38
+ f"The package `apache-airflow-providers-common-sql:{__version__}` needs Apache Airflow 2.11.0+"
39
39
  )
@@ -26,6 +26,7 @@ from airflow.utils.log.logging_mixin import LoggingMixin
26
26
 
27
27
  if TYPE_CHECKING:
28
28
  from sqlalchemy.engine import Inspector
29
+ from sqlalchemy.engine.interfaces import ReflectedColumn
29
30
 
30
31
  T = TypeVar("T")
31
32
 
@@ -85,16 +86,13 @@ class Dialect(LoggingMixin):
85
86
  return self.escape_word_format.format(word)
86
87
  return word
87
88
 
88
- def unescape_word(self, word: str | None) -> str | None:
89
+ def unescape_word(self, word: str) -> str:
89
90
  """
90
91
  Remove escape characters from each part of a dotted identifier (e.g., schema.table).
91
92
 
92
93
  :param word: Escaped schema, table, or column name, potentially with multiple segments.
93
94
  :return: The word without escaped characters.
94
95
  """
95
- if not word:
96
- return word
97
-
98
96
  escape_char_start = self.escape_word_format[0]
99
97
  escape_char_end = self.escape_word_format[-1]
100
98
 
@@ -112,20 +110,19 @@ class Dialect(LoggingMixin):
112
110
 
113
111
  @lru_cache(maxsize=None)
114
112
  def get_column_names(
115
- self, table: str, schema: str | None = None, predicate: Callable[[T], bool] = lambda column: True
113
+ self,
114
+ table: str,
115
+ schema: str | None = None,
116
+ predicate: Callable[[T | ReflectedColumn], bool] = lambda column: True,
116
117
  ) -> list[str] | None:
117
118
  if schema is None:
118
119
  table, schema = self.extract_schema_from_table(table)
119
- column_names = list(
120
- column["name"]
121
- for column in filter(
122
- predicate,
123
- self.inspector.get_columns(
124
- table_name=self.unescape_word(table),
125
- schema=self.unescape_word(schema) if schema else None,
126
- ),
127
- )
128
- )
120
+ table_name = self.unescape_word(table)
121
+ schema = self.unescape_word(schema) if schema else None
122
+ column_names = []
123
+ for column in self.inspector.get_columns(table_name=table_name, schema=schema):
124
+ if predicate(column):
125
+ column_names.append(column["name"])
129
126
  self.log.debug("Column names for table '%s': %s", table, column_names)
130
127
  return column_names
131
128
 
@@ -39,9 +39,9 @@ from airflow.exceptions import (
39
39
  AirflowOptionalProviderFeatureException,
40
40
  AirflowProviderDeprecationWarning,
41
41
  )
42
+ from airflow.providers.common.compat.sdk import BaseHook
42
43
  from airflow.providers.common.sql.dialects.dialect import Dialect
43
44
  from airflow.providers.common.sql.hooks import handlers
44
- from airflow.providers.common.sql.version_compat import BaseHook
45
45
  from airflow.utils.module_loading import import_string
46
46
 
47
47
  if TYPE_CHECKING:
@@ -49,14 +49,10 @@ if TYPE_CHECKING:
49
49
  from polars import DataFrame as PolarsDataFrame
50
50
  from sqlalchemy.engine import URL, Engine, Inspector
51
51
 
52
+ from airflow.providers.common.compat.sdk import Connection
52
53
  from airflow.providers.openlineage.extractors import OperatorLineage
53
54
  from airflow.providers.openlineage.sqlparser import DatabaseInfo
54
55
 
55
- try:
56
- from airflow.sdk import Connection
57
- except ImportError:
58
- from airflow.models.connection import Connection # type: ignore[assignment]
59
-
60
56
 
61
57
  T = TypeVar("T")
62
58
  SQL_PLACEHOLDERS = frozenset({"%s", "?"})
@@ -316,7 +312,7 @@ class DbApiHook(BaseHook):
316
312
  engine_kwargs = {}
317
313
 
318
314
  try:
319
- url = self.sqlalchemy_url
315
+ url: URL | str = self.sqlalchemy_url
320
316
  except NotImplementedError:
321
317
  url = self.get_uri()
322
318
 
@@ -109,7 +109,7 @@ class DbApiHook(BaseHook):
109
109
  ) -> PandasDataFrame: ...
110
110
  def get_pandas_df_by_chunks(
111
111
  self, sql, parameters: list | tuple | Mapping[str, Any] | None = None, *, chunksize: int, **kwargs
112
- ) -> Generator[PandasDataFrame, None, None]: ...
112
+ ) -> Generator[PandasDataFrame]: ...
113
113
  def get_records(
114
114
  self, sql: str | list[str], parameters: Iterable | Mapping[str, Any] | None = None
115
115
  ) -> Any: ...
@@ -143,7 +143,7 @@ class DbApiHook(BaseHook):
143
143
  chunksize: int,
144
144
  df_type: Literal["pandas"] = "pandas",
145
145
  **kwargs,
146
- ) -> Generator[PandasDataFrame, None, None]: ...
146
+ ) -> Generator[PandasDataFrame]: ...
147
147
  @overload
148
148
  def get_df_by_chunks(
149
149
  self,
@@ -153,7 +153,7 @@ class DbApiHook(BaseHook):
153
153
  chunksize: int,
154
154
  df_type: Literal["polars"],
155
155
  **kwargs,
156
- ) -> Generator[PolarsDataFrame, None, None]: ...
156
+ ) -> Generator[PolarsDataFrame]: ...
157
157
  @staticmethod
158
158
  def strip_sql_string(sql: str) -> str: ...
159
159
  @staticmethod
@@ -22,18 +22,14 @@ from functools import cached_property
22
22
  from typing import TYPE_CHECKING, Any
23
23
 
24
24
  from airflow.exceptions import AirflowException
25
+ from airflow.providers.common.compat.sdk import BaseHook, BaseOperator
25
26
  from airflow.providers.common.sql.hooks.sql import DbApiHook
26
27
  from airflow.providers.common.sql.triggers.sql import SQLExecuteQueryTrigger
27
- from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
28
28
 
29
29
  if TYPE_CHECKING:
30
30
  import jinja2
31
31
 
32
- try:
33
- from airflow.sdk.definitions.context import Context
34
- except ImportError:
35
- # TODO: Remove once provider drops support for Airflow 2
36
- from airflow.utils.context import Context
32
+ from airflow.providers.common.compat.sdk import Context
37
33
 
38
34
 
39
35
  class GenericTransfer(BaseOperator):
@@ -79,7 +75,7 @@ class GenericTransfer(BaseOperator):
79
75
  def __init__(
80
76
  self,
81
77
  *,
82
- sql: str,
78
+ sql: str | list[str],
83
79
  destination_table: str,
84
80
  source_conn_id: str,
85
81
  source_hook_params: dict | None = None,
@@ -160,13 +156,19 @@ class GenericTransfer(BaseOperator):
160
156
  method_name=self.execute_complete.__name__,
161
157
  )
162
158
  else:
159
+ if isinstance(self.sql, str):
160
+ self.sql = [self.sql]
161
+
163
162
  self.log.info("Extracting data from %s", self.source_conn_id)
164
- self.log.info("Executing: \n %s", self.sql)
163
+ for sql in self.sql:
164
+ self.log.info("Executing: \n %s", sql)
165
165
 
166
- results = self.source_hook.get_records(self.sql)
166
+ results = self.source_hook.get_records(sql)
167
167
 
168
- self.log.info("Inserting rows into %s", self.destination_conn_id)
169
- self.destination_hook.insert_rows(table=self.destination_table, rows=results, **self.insert_args)
168
+ self.log.info("Inserting rows into %s", self.destination_conn_id)
169
+ self.destination_hook.insert_rows(
170
+ table=self.destination_table, rows=results, **self.insert_args
171
+ )
170
172
 
171
173
  def execute_complete(
172
174
  self,
@@ -57,7 +57,7 @@ class GenericTransfer(BaseOperator):
57
57
  def __init__(
58
58
  self,
59
59
  *,
60
- sql: str,
60
+ sql: str | list[str],
61
61
  destination_table: str,
62
62
  source_conn_id: str,
63
63
  source_hook_params: dict | None = None,
@@ -24,18 +24,23 @@ from functools import cached_property
24
24
  from typing import TYPE_CHECKING, Any, ClassVar, NoReturn, SupportsAbs
25
25
 
26
26
  from airflow import XComArg
27
- from airflow.exceptions import AirflowException, AirflowFailException, AirflowSkipException
27
+ from airflow.exceptions import AirflowException
28
28
  from airflow.models import SkipMixin
29
+ from airflow.providers.common.compat.sdk import (
30
+ AirflowFailException,
31
+ AirflowSkipException,
32
+ BaseHook,
33
+ BaseOperator,
34
+ )
29
35
  from airflow.providers.common.sql.hooks.handlers import fetch_all_handler, return_single_query_results
30
36
  from airflow.providers.common.sql.hooks.sql import DbApiHook
31
- from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
32
37
  from airflow.utils.helpers import merge_dicts
33
38
 
34
39
  if TYPE_CHECKING:
35
40
  import jinja2
36
41
 
42
+ from airflow.providers.common.compat.sdk import Context
37
43
  from airflow.providers.openlineage.extractors import OperatorLineage
38
- from airflow.utils.context import Context
39
44
 
40
45
 
41
46
  def _convert_to_float_if_possible(s: str) -> float | str:
@@ -21,11 +21,11 @@ from operator import itemgetter
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.exceptions import AirflowException
24
+ from airflow.providers.common.compat.sdk import BaseHook, BaseSensorOperator
24
25
  from airflow.providers.common.sql.hooks.sql import DbApiHook
25
- from airflow.providers.common.sql.version_compat import BaseHook, BaseSensorOperator
26
26
 
27
27
  if TYPE_CHECKING:
28
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
29
29
 
30
30
 
31
31
  class SqlSensor(BaseSensorOperator):
@@ -37,13 +37,7 @@ from typing import Any
37
37
 
38
38
  from _typeshed import Incomplete as Incomplete
39
39
 
40
- from airflow.providers.common.sql.version_compat import AIRFLOW_V_3_0_PLUS
41
-
42
- if AIRFLOW_V_3_0_PLUS:
43
- from airflow.sdk import BaseSensorOperator
44
- else:
45
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
46
-
40
+ from airflow.providers.common.compat.sdk import BaseSensorOperator
47
41
  from airflow.utils.context import Context as Context
48
42
 
49
43
  class SqlSensor(BaseSensorOperator):
@@ -20,8 +20,8 @@ from __future__ import annotations
20
20
  from typing import TYPE_CHECKING
21
21
 
22
22
  from airflow.exceptions import AirflowException
23
+ from airflow.providers.common.compat.sdk import BaseHook
23
24
  from airflow.providers.common.sql.hooks.sql import DbApiHook
24
- from airflow.providers.common.sql.version_compat import BaseHook
25
25
  from airflow.triggers.base import BaseTrigger, TriggerEvent
26
26
 
27
27
  if TYPE_CHECKING:
@@ -35,21 +35,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
35
35
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36
36
  AIRFLOW_V_3_1_PLUS: bool = get_base_airflow_version_tuple() >= (3, 1, 0)
37
37
 
38
- if AIRFLOW_V_3_1_PLUS:
39
- from airflow.sdk import BaseHook
40
- else:
41
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
42
-
43
- if AIRFLOW_V_3_0_PLUS:
44
- from airflow.sdk import BaseOperator, BaseSensorOperator
45
- else:
46
- from airflow.models import BaseOperator
47
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
48
-
49
38
  __all__ = [
50
39
  "AIRFLOW_V_3_0_PLUS",
51
40
  "AIRFLOW_V_3_1_PLUS",
52
- "BaseHook",
53
- "BaseOperator",
54
- "BaseSensorOperator",
55
41
  ]
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-common-sql
3
- Version: 1.28.1rc1
3
+ Version: 1.30.0rc2
4
4
  Summary: Provider package apache-airflow-providers-common-sql for Apache Airflow
5
5
  Keywords: airflow-provider,common.sql,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
- Requires-Dist: apache-airflow>=2.10.0rc1
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.10.0rc1
24
27
  Requires-Dist: sqlparse>=0.5.1
25
28
  Requires-Dist: more-itertools>=9.0.0
26
29
  Requires-Dist: methodtools>=0.4.7
@@ -29,8 +32,8 @@ Requires-Dist: pandas[sql-other]>=2.1.2 ; extra == "pandas" and ( python_version
29
32
  Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13")
30
33
  Requires-Dist: polars>=1.26.0 ; extra == "polars"
31
34
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
32
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.1/changelog.html
33
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.1
35
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.30.0/changelog.html
36
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.30.0
34
37
  Project-URL: Mastodon, https://fosstodon.org/@airflow
35
38
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
36
39
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -64,7 +67,7 @@ Provides-Extra: polars
64
67
 
65
68
  Package ``apache-airflow-providers-common-sql``
66
69
 
67
- Release: ``1.28.1``
70
+ Release: ``1.30.0``
68
71
 
69
72
 
70
73
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
@@ -77,7 +80,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
77
80
  are in ``airflow.providers.common.sql`` python package.
78
81
 
79
82
  You can find package information and changelog for the provider
80
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.1/>`_.
83
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.0/>`_.
81
84
 
82
85
  Installation
83
86
  ------------
@@ -91,14 +94,15 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
91
94
  Requirements
92
95
  ------------
93
96
 
94
- ================== ==================
95
- PIP package Version required
96
- ================== ==================
97
- ``apache-airflow`` ``>=2.10.0``
98
- ``sqlparse`` ``>=0.5.1``
99
- ``more-itertools`` ``>=9.0.0``
100
- ``methodtools`` ``>=0.4.7``
101
- ================== ==================
97
+ ========================================== ==================
98
+ PIP package Version required
99
+ ========================================== ==================
100
+ ``apache-airflow`` ``>=2.11.0``
101
+ ``apache-airflow-providers-common-compat`` ``>=1.10.0``
102
+ ``sqlparse`` ``>=0.5.1``
103
+ ``more-itertools`` ``>=9.0.0``
104
+ ``methodtools`` ``>=0.4.7``
105
+ ========================================== ==================
102
106
 
103
107
  Cross provider package dependencies
104
108
  -----------------------------------
@@ -110,14 +114,15 @@ You can install such cross-provider dependencies when installing from PyPI. For
110
114
 
111
115
  .. code-block:: bash
112
116
 
113
- pip install apache-airflow-providers-common-sql[openlineage]
117
+ pip install apache-airflow-providers-common-sql[common.compat]
114
118
 
115
119
 
116
- ============================================================================================================== ===============
117
- Dependent package Extra
118
- ============================================================================================================== ===============
119
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
120
- ============================================================================================================== ===============
120
+ ================================================================================================================== =================
121
+ Dependent package Extra
122
+ ================================================================================================================== =================
123
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
124
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
125
+ ================================================================================================================== =================
121
126
 
122
127
  Optional dependencies
123
128
  ----------------------
@@ -131,5 +136,5 @@ Extra Dependencies
131
136
  =============== ================================================================================================
132
137
 
133
138
  The changelog for the provider package can be found in the
134
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.1/changelog.html>`_.
139
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.0/changelog.html>`_.
135
140
 
@@ -1,11 +1,10 @@
1
- airflow/providers/common/sql/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
1
  airflow/providers/common/sql/README_API.md,sha256=Yug9-DLqoKkG-qT5XMwkyG_T-r17Iqhiipxt5tMZIUw,5906
3
- airflow/providers/common/sql/__init__.py,sha256=YcNcpx2fEEVuY5zRqrITE-NAIYlJ2MqfZ8SraaYi0mM,1500
2
+ airflow/providers/common/sql/__init__.py,sha256=UDAGkHrTWZcpCoLOS1cPbWYOrzyexEMoqBjjV3nJb14,1500
4
3
  airflow/providers/common/sql/get_provider_info.py,sha256=xCPXLKFA_1ilhGa0aB3E9ggdHtn9Do7Eb469begpZag,2767
5
4
  airflow/providers/common/sql/get_provider_info.pyi,sha256=NSIGS74SESn-j0g3xd3BlctUrKlkWaXL605hCs0hjac,1580
6
- airflow/providers/common/sql/version_compat.py,sha256=WKfSWhm-ZTmqCuSo6UMn9GiEgzfCMGEso4BR52V4A4c,2105
5
+ airflow/providers/common/sql/version_compat.py,sha256=A6a37mMJVpSRlvL7wAMj4VGbFao3-lnRXMgnU3F3nLE,1676
7
6
  airflow/providers/common/sql/dialects/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
8
- airflow/providers/common/sql/dialects/dialect.py,sha256=1pWw6s0NJpfdIiNUO_Tl-jCgKUefbS-mQa01yAkNLT8,7705
7
+ airflow/providers/common/sql/dialects/dialect.py,sha256=zdmmL6yU5_Bdp-aiYJ4TxcZdXHDPb08odWLxSYAUBkM,7723
9
8
  airflow/providers/common/sql/dialects/dialect.pyi,sha256=ti8eTrLEj-sgtYEoIj3pEfOSl24nbQNhxBcgB8145jY,3504
10
9
  airflow/providers/common/sql/doc/adr/0001-record-architecture-decisions.md,sha256=TfANqrzoFto9PMOMza3MitIkXHGLx2kY_BhhF-N0_ow,1675
11
10
  airflow/providers/common/sql/doc/adr/0002-return-common-data-structure-from-dbapihook-derived-hooks.md,sha256=ze5w9IVS-HkUwdZvPW8_JaJaVwel7-N6XdEVN4pTuCE,8457
@@ -13,19 +12,21 @@ airflow/providers/common/sql/doc/adr/0003-introduce-notion-of-dialects-in-dbapih
13
12
  airflow/providers/common/sql/hooks/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
14
13
  airflow/providers/common/sql/hooks/handlers.py,sha256=XjvycIQsGpDrtg6RFACczybW_dER97RR6Z6B_S6jf6Y,3399
15
14
  airflow/providers/common/sql/hooks/handlers.pyi,sha256=Qex63GfW0J6RQeT-prAfukvw4NE6P1IQnM1e04D2sH4,1811
16
- airflow/providers/common/sql/hooks/sql.py,sha256=w_I-mQ1j_hde_M5Dq7AwtwZLIv-ga5dJsAKhvfNnsaU,44010
17
- airflow/providers/common/sql/hooks/sql.pyi,sha256=5E3BMnzkKpDaxv47WDsTVlGtTp1_5N-4gk3janeF8nA,7952
15
+ airflow/providers/common/sql/hooks/sql.py,sha256=zQoZxgNisu6RFQ4aSCVV52EWx5_6fDVHR8BH73Cbopk,43914
16
+ airflow/providers/common/sql/hooks/sql.pyi,sha256=K7WXuEYXtzrdyBD4zDk7khEO8Wken5fTD1YGqeAOkFk,7916
18
17
  airflow/providers/common/sql/operators/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
19
- airflow/providers/common/sql/operators/generic_transfer.py,sha256=8rK29EisThzJlNmbmPT86fdp7jUqIl8VVFHAb2-ca1A,8510
20
- airflow/providers/common/sql/operators/generic_transfer.pyi,sha256=wHN-8y2rLpGBSoNMce6gQR19CnahLZzoW3qjCDmUvHE,3312
21
- airflow/providers/common/sql/operators/sql.py,sha256=I-ZZeNBOZjtPqwRVU0azYF9ZRiX2AgwRWqaegSIZdgw,55718
18
+ airflow/providers/common/sql/operators/generic_transfer.py,sha256=OQssXxbIY3tMS9NIO-dn0TIUK4yGkEiFsO3VL_Ikm_8,8524
19
+ airflow/providers/common/sql/operators/generic_transfer.pyi,sha256=hiz7iWQZyePuIknVrEt4GnVi9SvbC5FCwZoyMsCF8LY,3324
20
+ airflow/providers/common/sql/operators/sql.py,sha256=5N1ubh2O8PFUhMLhVwULZfVhOJSIBhNJRyBvYdwREig,55745
22
21
  airflow/providers/common/sql/sensors/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
23
- airflow/providers/common/sql/sensors/sql.py,sha256=osPBiu7atWLEe2fH9FTmwm0aXJ12JggcGuwJwjkWOko,5464
24
- airflow/providers/common/sql/sensors/sql.pyi,sha256=T25x934WUathT0bOULErqx-af8nxkBN-j9eid3cFRSI,2675
22
+ airflow/providers/common/sql/sensors/sql.py,sha256=MCNyMiqI-2UqSJqwTwVSQOBGgn3Kk_p-n8S-OWfZm-M,5470
23
+ airflow/providers/common/sql/sensors/sql.pyi,sha256=PDjBzPRdgFjJ2LEPZ4dHzElcVi9C7KeeQdr4V0hmdRc,2507
25
24
  airflow/providers/common/sql/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
26
- airflow/providers/common/sql/triggers/sql.py,sha256=3xTxMf2oSE8X8IhP22pmlSoEYmJIIFmi8HmsNbiLek0,3690
25
+ airflow/providers/common/sql/triggers/sql.py,sha256=4jbn8RBO6crMUrx3rtfjUYE8KSFnbWeog-UbQLRyCAA,3682
27
26
  airflow/providers/common/sql/triggers/sql.pyi,sha256=TjSM2B3qCv3oN8Y5l_czi9YfxRE2h5Hv_lvUokeiGsE,1968
28
- apache_airflow_providers_common_sql-1.28.1rc1.dist-info/entry_points.txt,sha256=h8UXRp2crPuGmYVYRM5oe168qIh7g-4t2QQbVMizKjI,106
29
- apache_airflow_providers_common_sql-1.28.1rc1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
30
- apache_airflow_providers_common_sql-1.28.1rc1.dist-info/METADATA,sha256=c4SvphiaMXjtXFpT0ecX95DV8NSPlCOu7JkSbsZEur8,6110
31
- apache_airflow_providers_common_sql-1.28.1rc1.dist-info/RECORD,,
27
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/entry_points.txt,sha256=h8UXRp2crPuGmYVYRM5oe168qIh7g-4t2QQbVMizKjI,106
28
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/licenses/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
29
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/licenses/NOTICE,sha256=E3-_E02gwwSEFzeeWPKmnIjOoos3hW28CLISV6sYrbQ,168
30
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
31
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/METADATA,sha256=OrAb3p6Mu-ZPKaYQDpfzPs9phu_U-F4p4QIE0OjqwqE,6597
32
+ apache_airflow_providers_common_sql-1.30.0rc2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Apache Airflow
2
+ Copyright 2016-2025 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).