diff --git a/providers/snowflake/pyproject.toml b/providers/snowflake/pyproject.toml index 2924a3d16bd1a..73efbf94e4709 100644 --- a/providers/snowflake/pyproject.toml +++ b/providers/snowflake/pyproject.toml @@ -58,7 +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.6.0", + "apache-airflow-providers-common-compat>=1.7.4", # + TODO: bump to next version "apache-airflow-providers-common-sql>=1.27.5", 'pandas>=2.1.2; python_version <"3.13"', 'pandas>=2.2.3; python_version >="3.13"', diff --git a/providers/snowflake/src/airflow/providers/snowflake/decorators/snowpark.py b/providers/snowflake/src/airflow/providers/snowflake/decorators/snowpark.py index a0dabd2193ceb..03271155f8a67 100644 --- a/providers/snowflake/src/airflow/providers/snowflake/decorators/snowpark.py +++ b/providers/snowflake/src/airflow/providers/snowflake/decorators/snowpark.py @@ -18,21 +18,11 @@ from __future__ import annotations from collections.abc import Callable, Sequence -from typing import TYPE_CHECKING - -from airflow.providers.snowflake.version_compat import AIRFLOW_V_3_0_PLUS - -if AIRFLOW_V_3_0_PLUS: - from airflow.sdk.bases.decorator import DecoratedOperator, task_decorator_factory -else: - from airflow.decorators.base import DecoratedOperator, task_decorator_factory # type: ignore[no-redef] +from airflow.providers.common.compat.sdk import DecoratedOperator, TaskDecorator, task_decorator_factory from airflow.providers.snowflake.operators.snowpark import SnowparkOperator from airflow.providers.snowflake.utils.snowpark import inject_session_into_op_kwargs -if TYPE_CHECKING: - from airflow.sdk.bases.decorator import TaskDecorator - class _SnowparkDecoratedOperator(DecoratedOperator, SnowparkOperator): """ diff --git a/providers/snowflake/src/airflow/providers/snowflake/hooks/snowflake.py b/providers/snowflake/src/airflow/providers/snowflake/hooks/snowflake.py index f28a7932d8b2e..8cabe3fc4af12 100644 --- a/providers/snowflake/src/airflow/providers/snowflake/hooks/snowflake.py +++ b/providers/snowflake/src/airflow/providers/snowflake/hooks/snowflake.py @@ -38,16 +38,12 @@ from airflow.configuration import conf from airflow.exceptions import AirflowException +from airflow.providers.common.compat.sdk import Connection from airflow.providers.common.sql.hooks.handlers import return_single_query_results from airflow.providers.common.sql.hooks.sql import DbApiHook from airflow.providers.snowflake.utils.openlineage import fix_snowflake_sqlalchemy_uri from airflow.utils.strings import to_boolean -try: - from airflow.sdk import Connection -except ImportError: - from airflow.models.connection import Connection # type: ignore[assignment] - T = TypeVar("T") if TYPE_CHECKING: from airflow.providers.openlineage.extractors import OperatorLineage diff --git a/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py b/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py index 84f6773b2bfef..0a9834679a7e4 100644 --- a/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py +++ b/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py @@ -35,11 +35,7 @@ from airflow.providers.snowflake.triggers.snowflake_trigger import SnowflakeSqlApiTrigger if TYPE_CHECKING: - 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 SnowflakeCheckOperator(SQLCheckOperator): diff --git a/providers/snowflake/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py b/providers/snowflake/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py index 9032b9fbe5d30..d270d518a5043 100644 --- a/providers/snowflake/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py +++ b/providers/snowflake/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py @@ -22,9 +22,9 @@ from collections.abc import Sequence from typing import Any +from airflow.providers.common.compat.sdk import BaseOperator from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook from airflow.providers.snowflake.utils.common import enclose_param -from airflow.providers.snowflake.version_compat import BaseOperator def _validate_parameter(param_name: str, value: str | None) -> str | None: diff --git a/providers/snowflake/src/airflow/providers/snowflake/version_compat.py b/providers/snowflake/src/airflow/providers/snowflake/version_compat.py index e7a259afb357c..0956edd21112f 100644 --- a/providers/snowflake/src/airflow/providers/snowflake/version_compat.py +++ b/providers/snowflake/src/airflow/providers/snowflake/version_compat.py @@ -34,12 +34,6 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]: AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0) -if AIRFLOW_V_3_0_PLUS: - from airflow.sdk import BaseOperator -else: - from airflow.models import BaseOperator - __all__ = [ "AIRFLOW_V_3_0_PLUS", - "BaseOperator", ] diff --git a/providers/snowflake/tests/unit/snowflake/decorators/test_snowpark.py b/providers/snowflake/tests/unit/snowflake/decorators/test_snowpark.py index 1b19017c503cb..f0b36e7b41f9b 100644 --- a/providers/snowflake/tests/unit/snowflake/decorators/test_snowpark.py +++ b/providers/snowflake/tests/unit/snowflake/decorators/test_snowpark.py @@ -26,12 +26,7 @@ pytest.importorskip("snowflake-snowpark-python") -from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS - -if AIRFLOW_V_3_0_PLUS: - from airflow.sdk import task -else: - from airflow.decorators import task # type: ignore[attr-defined,no-redef] +from airflow.providers.common.compat.sdk import task from airflow.utils import timezone from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS diff --git a/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py b/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py index 9d4d6a5c114ab..2862214394c7b 100644 --- a/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py +++ b/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py @@ -40,12 +40,7 @@ from tests_common.test_utils.dag import sync_dag_to_db from tests_common.test_utils.db import clear_db_dag_bundles, clear_db_dags, clear_db_runs -from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS, AIRFLOW_V_3_1_PLUS - -if AIRFLOW_V_3_1_PLUS: - from airflow.sdk import timezone -else: - from airflow.utils import timezone # type: ignore[attr-defined,no-redef] +from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS, timezone DEFAULT_DATE = timezone.datetime(2015, 1, 1) DEFAULT_DATE_ISO = DEFAULT_DATE.isoformat()