This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new d31c7326967 Migrate `common.sql` provider to `common.compat` (#57075)
d31c7326967 is described below
commit d31c7326967927746668b89550460aee58765310
Author: rich7420 <[email protected]>
AuthorDate: Thu Oct 23 22:08:09 2025 +0800
Migrate `common.sql` provider to `common.compat` (#57075)
---
dev/breeze/tests/test_selective_checks.py | 2 +-
providers/common/sql/pyproject.toml | 4 ++++
.../sql/src/airflow/providers/common/sql/hooks/sql.py | 2 +-
.../providers/common/sql/operators/generic_transfer.py | 2 +-
.../sql/src/airflow/providers/common/sql/operators/sql.py | 2 +-
.../sql/src/airflow/providers/common/sql/sensors/sql.py | 2 +-
.../sql/src/airflow/providers/common/sql/triggers/sql.py | 2 +-
.../sql/src/airflow/providers/common/sql/version_compat.py | 14 --------------
.../common/sql/tests/unit/common/sql/hooks/test_dbapi.py | 2 +-
9 files changed, 11 insertions(+), 21 deletions(-)
diff --git a/dev/breeze/tests/test_selective_checks.py
b/dev/breeze/tests/test_selective_checks.py
index 35f2cf03fe2..3a39b7fd2b0 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -2129,7 +2129,7 @@ def test_upgrade_to_newer_dependencies(
("providers/common/sql/src/airflow/providers/common/sql/common_sql_python.py",),
{
"docs-list-as-string": "amazon apache.drill apache.druid
apache.hive "
- "apache.impala apache.pinot common.sql databricks
elasticsearch "
+ "apache.impala apache.pinot common.compat common.sql
databricks elasticsearch "
"exasol google jdbc microsoft.mssql mysql odbc openlineage "
"oracle pgvector postgres presto slack snowflake sqlite
teradata trino vertica ydb",
},
diff --git a/providers/common/sql/pyproject.toml
b/providers/common/sql/pyproject.toml
index 0aceb60e8dc..a640d2e1301 100644
--- a/providers/common/sql/pyproject.toml
+++ b/providers/common/sql/pyproject.toml
@@ -68,6 +68,9 @@ dependencies = [
# The optional dependencies should be modified in place in the generated file
# Any change in the dependencies is preserved when the file is regenerated
[project.optional-dependencies]
+"common.compat" = [
+ "apache-airflow-providers-common-compat>=1.8.0",
+]
"pandas" = [
'pandas[sql-other]>=2.1.2; python_version <"3.13"',
# Technically - we should add "sql-other" here as well, but this will only
be possible when we move
@@ -86,6 +89,7 @@ dev = [
"apache-airflow",
"apache-airflow-task-sdk",
"apache-airflow-devel-common",
+ "apache-airflow-providers-common-compat",
"apache-airflow-providers-openlineage",
# Additional devel dependencies (do not remove this line and add extra
development dependencies)
"apache-airflow-providers-common-sql[pandas]",
diff --git a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
index 660b332077b..b19aefab857 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
@@ -39,9 +39,9 @@ from airflow.exceptions import (
AirflowOptionalProviderFeatureException,
AirflowProviderDeprecationWarning,
)
+from airflow.providers.common.compat.sdk import BaseHook
from airflow.providers.common.sql.dialects.dialect import Dialect
from airflow.providers.common.sql.hooks import handlers
-from airflow.providers.common.sql.version_compat import BaseHook
from airflow.utils.module_loading import import_string
if TYPE_CHECKING:
diff --git
a/providers/common/sql/src/airflow/providers/common/sql/operators/generic_transfer.py
b/providers/common/sql/src/airflow/providers/common/sql/operators/generic_transfer.py
index 5c659ecf5c7..2ed83769a5b 100644
---
a/providers/common/sql/src/airflow/providers/common/sql/operators/generic_transfer.py
+++
b/providers/common/sql/src/airflow/providers/common/sql/operators/generic_transfer.py
@@ -22,9 +22,9 @@ from functools import cached_property
from typing import TYPE_CHECKING, Any
from airflow.exceptions import AirflowException
+from airflow.providers.common.compat.sdk import BaseHook, BaseOperator
from airflow.providers.common.sql.hooks.sql import DbApiHook
from airflow.providers.common.sql.triggers.sql import SQLExecuteQueryTrigger
-from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
if TYPE_CHECKING:
import jinja2
diff --git
a/providers/common/sql/src/airflow/providers/common/sql/operators/sql.py
b/providers/common/sql/src/airflow/providers/common/sql/operators/sql.py
index 2a85e462cf1..a1bc06bb2b5 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/operators/sql.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/operators/sql.py
@@ -26,9 +26,9 @@ from typing import TYPE_CHECKING, Any, ClassVar, NoReturn,
SupportsAbs
from airflow import XComArg
from airflow.exceptions import AirflowException, AirflowFailException,
AirflowSkipException
from airflow.models import SkipMixin
+from airflow.providers.common.compat.sdk import BaseHook, BaseOperator
from airflow.providers.common.sql.hooks.handlers import fetch_all_handler,
return_single_query_results
from airflow.providers.common.sql.hooks.sql import DbApiHook
-from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
from airflow.utils.helpers import merge_dicts
if TYPE_CHECKING:
diff --git
a/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.py
b/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.py
index 4ef79769ef3..4fdbbb94cf4 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.py
@@ -21,8 +21,8 @@ from operator import itemgetter
from typing import TYPE_CHECKING, Any
from airflow.exceptions import AirflowException
+from airflow.providers.common.compat.sdk import BaseHook, BaseSensorOperator
from airflow.providers.common.sql.hooks.sql import DbApiHook
-from airflow.providers.common.sql.version_compat import BaseHook,
BaseSensorOperator
if TYPE_CHECKING:
from airflow.utils.context import Context
diff --git
a/providers/common/sql/src/airflow/providers/common/sql/triggers/sql.py
b/providers/common/sql/src/airflow/providers/common/sql/triggers/sql.py
index f137293617e..7b17ad04d32 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/triggers/sql.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/triggers/sql.py
@@ -20,8 +20,8 @@ from __future__ import annotations
from typing import TYPE_CHECKING
from airflow.exceptions import AirflowException
+from airflow.providers.common.compat.sdk import BaseHook
from airflow.providers.common.sql.hooks.sql import DbApiHook
-from airflow.providers.common.sql.version_compat import BaseHook
from airflow.triggers.base import BaseTrigger, TriggerEvent
if TYPE_CHECKING:
diff --git
a/providers/common/sql/src/airflow/providers/common/sql/version_compat.py
b/providers/common/sql/src/airflow/providers/common/sql/version_compat.py
index 03bf6973a70..a4fae50317e 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/version_compat.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/version_compat.py
@@ -35,21 +35,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
AIRFLOW_V_3_1_PLUS: bool = get_base_airflow_version_tuple() >= (3, 1, 0)
-if AIRFLOW_V_3_1_PLUS:
- from airflow.sdk import BaseHook
-else:
- from airflow.hooks.base import BaseHook # type:
ignore[attr-defined,no-redef]
-
-if AIRFLOW_V_3_0_PLUS:
- from airflow.sdk import BaseOperator, BaseSensorOperator
-else:
- from airflow.models import BaseOperator
- from airflow.sensors.base import BaseSensorOperator # type:
ignore[no-redef]
-
__all__ = [
"AIRFLOW_V_3_0_PLUS",
"AIRFLOW_V_3_1_PLUS",
- "BaseHook",
- "BaseOperator",
- "BaseSensorOperator",
]
diff --git a/providers/common/sql/tests/unit/common/sql/hooks/test_dbapi.py
b/providers/common/sql/tests/unit/common/sql/hooks/test_dbapi.py
index 62e5bf78336..e77c5d342a7 100644
--- a/providers/common/sql/tests/unit/common/sql/hooks/test_dbapi.py
+++ b/providers/common/sql/tests/unit/common/sql/hooks/test_dbapi.py
@@ -26,10 +26,10 @@ import pytest
from pyodbc import Cursor
from airflow.models import Connection
+from airflow.providers.common.compat.sdk import BaseHook
from airflow.providers.common.sql.dialects.dialect import Dialect
from airflow.providers.common.sql.hooks.handlers import fetch_all_handler,
fetch_one_handler
from airflow.providers.common.sql.hooks.sql import DbApiHook
-from airflow.providers.common.sql.version_compat import BaseHook
class DbApiHookInProvider(DbApiHook):