diff --git a/providers/common/sql/pyproject.toml b/providers/common/sql/pyproject.toml index a640d2e130132..67d795a82b105 100644 --- a/providers/common/sql/pyproject.toml +++ b/providers/common/sql/pyproject.toml @@ -58,6 +58,7 @@ requires-python = ">=3.10" # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build`` dependencies = [ "apache-airflow>=2.10.0", + "apache-airflow-providers-common-compat>=1.8.0", "sqlparse>=0.5.1", "more-itertools>=9.0.0", # The methodtools dependency is necessary since the introduction of dialects: 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 b19aefab85716..33a814076771d 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 @@ -49,14 +49,10 @@ from polars import DataFrame as PolarsDataFrame from sqlalchemy.engine import URL, Engine, Inspector + from airflow.providers.common.compat.sdk import Connection from airflow.providers.openlineage.extractors import OperatorLineage from airflow.providers.openlineage.sqlparser import DatabaseInfo - try: - from airflow.sdk import Connection - except ImportError: - from airflow.models.connection import Connection # type: ignore[assignment] - T = TypeVar("T") SQL_PLACEHOLDERS = frozenset({"%s", "?"}) 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 2ed83769a5b49..84bc367a94c6d 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 @@ -29,11 +29,7 @@ if TYPE_CHECKING: import jinja2 - try: - from airflow.sdk.definitions.context import Context - except ImportError: - # TODO: Remove once provider drops support for Airflow 2 - from airflow.utils.context import Context + from airflow.providers.common.compat.sdk import Context class GenericTransfer(BaseOperator): 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 a1bc06bb2b52f..8095373e7d72b 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 @@ -34,8 +34,8 @@ if TYPE_CHECKING: import jinja2 + from airflow.providers.common.compat.sdk import Context from airflow.providers.openlineage.extractors import OperatorLineage - from airflow.utils.context import Context def _convert_to_float_if_possible(s: str) -> float | str: 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 4fdbbb94cf4b1..7912cc757d577 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 @@ -25,7 +25,7 @@ from airflow.providers.common.sql.hooks.sql import DbApiHook if TYPE_CHECKING: - from airflow.utils.context import Context + from airflow.providers.common.compat.sdk import Context class SqlSensor(BaseSensorOperator): diff --git a/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.pyi b/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.pyi index 1fe0c58d2ce79..f72b8ac554b0b 100644 --- a/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.pyi +++ b/providers/common/sql/src/airflow/providers/common/sql/sensors/sql.pyi @@ -37,13 +37,7 @@ from typing import Any from _typeshed import Incomplete as Incomplete -from airflow.providers.common.sql.version_compat import AIRFLOW_V_3_0_PLUS - -if AIRFLOW_V_3_0_PLUS: - from airflow.sdk import BaseSensorOperator -else: - from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef] - +from airflow.providers.common.compat.sdk import BaseSensorOperator from airflow.utils.context import Context as Context class SqlSensor(BaseSensorOperator):