apache-airflow-providers-common-sql 1.28.1rc1__py3-none-any.whl → 1.30.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.
- airflow/providers/common/sql/__init__.py +3 -3
- airflow/providers/common/sql/dialects/dialect.py +12 -15
- airflow/providers/common/sql/hooks/sql.py +3 -7
- airflow/providers/common/sql/hooks/sql.pyi +3 -3
- airflow/providers/common/sql/operators/generic_transfer.py +13 -11
- airflow/providers/common/sql/operators/generic_transfer.pyi +1 -1
- airflow/providers/common/sql/operators/sql.py +8 -3
- airflow/providers/common/sql/sensors/sql.py +2 -2
- airflow/providers/common/sql/sensors/sql.pyi +1 -7
- airflow/providers/common/sql/triggers/sql.py +1 -1
- airflow/providers/common/sql/version_compat.py +0 -14
- {apache_airflow_providers_common_sql-1.28.1rc1.dist-info → apache_airflow_providers_common_sql-1.30.0.dist-info}/METADATA +27 -22
- {apache_airflow_providers_common_sql-1.28.1rc1.dist-info → apache_airflow_providers_common_sql-1.30.0.dist-info}/RECORD +17 -16
- apache_airflow_providers_common_sql-1.30.0.dist-info/licenses/NOTICE +5 -0
- {apache_airflow_providers_common_sql-1.28.1rc1.dist-info → apache_airflow_providers_common_sql-1.30.0.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_common_sql-1.28.1rc1.dist-info → apache_airflow_providers_common_sql-1.30.0.dist-info}/entry_points.txt +0 -0
- {airflow/providers/common/sql → apache_airflow_providers_common_sql-1.30.0.dist-info/licenses}/LICENSE +0 -0
|
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "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.
|
|
35
|
+
"2.11.0"
|
|
36
36
|
):
|
|
37
37
|
raise RuntimeError(
|
|
38
|
-
f"The package `apache-airflow-providers-common-sql:{__version__}` needs Apache Airflow 2.
|
|
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
|
|
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,
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
163
|
+
for sql in self.sql:
|
|
164
|
+
self.log.info("Executing: \n %s", sql)
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
results = self.source_hook.get_records(sql)
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
|
|
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,
|
|
@@ -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
|
|
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.
|
|
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.
|
|
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.
|
|
3
|
+
Version: 1.30.0
|
|
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
|
-
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: NOTICE
|
|
25
|
+
Requires-Dist: apache-airflow>=2.11.0
|
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.10.0
|
|
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.
|
|
33
|
-
Project-URL: Documentation, https://airflow.
|
|
35
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.0/changelog.html
|
|
36
|
+
Project-URL: Documentation, https://airflow.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.
|
|
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.
|
|
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
|
|
96
|
-
|
|
97
|
-
``apache-airflow``
|
|
98
|
-
``
|
|
99
|
-
``
|
|
100
|
-
``
|
|
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[
|
|
117
|
+
pip install apache-airflow-providers-common-sql[common.compat]
|
|
114
118
|
|
|
115
119
|
|
|
116
|
-
|
|
117
|
-
Dependent package
|
|
118
|
-
|
|
119
|
-
`apache-airflow-providers-
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
17
|
-
airflow/providers/common/sql/hooks/sql.pyi,sha256=
|
|
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=
|
|
20
|
-
airflow/providers/common/sql/operators/generic_transfer.pyi,sha256=
|
|
21
|
-
airflow/providers/common/sql/operators/sql.py,sha256=
|
|
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=
|
|
24
|
-
airflow/providers/common/sql/sensors/sql.pyi,sha256=
|
|
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=
|
|
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.
|
|
29
|
-
apache_airflow_providers_common_sql-1.
|
|
30
|
-
apache_airflow_providers_common_sql-1.
|
|
31
|
-
apache_airflow_providers_common_sql-1.
|
|
27
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/entry_points.txt,sha256=h8UXRp2crPuGmYVYRM5oe168qIh7g-4t2QQbVMizKjI,106
|
|
28
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/licenses/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
|
29
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/licenses/NOTICE,sha256=E3-_E02gwwSEFzeeWPKmnIjOoos3hW28CLISV6sYrbQ,168
|
|
30
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
31
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/METADATA,sha256=T8ZElZmuB2xCFZVF6-bwFT8mLonxcOMWGAfhU9aW4Mg,6574
|
|
32
|
+
apache_airflow_providers_common_sql-1.30.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|