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):

Reply via email to