diff --git a/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py b/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py index 18e9d396230a9..99c1dcd1f30f0 100644 --- a/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py +++ b/providers/amazon/src/airflow/providers/amazon/aws/hooks/base_aws.py @@ -60,13 +60,9 @@ from airflow.providers.amazon.aws.utils.connection_wrapper import AwsConnectionWrapper from airflow.providers.amazon.aws.utils.identifiers import generate_uuid from airflow.providers.amazon.aws.utils.suppress import return_on_error +from airflow.providers.amazon.version_compat import BaseHook from airflow.providers.common.compat.version_compat import AIRFLOW_V_3_0_PLUS from airflow.providers_manager import ProvidersManager - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] from airflow.utils.helpers import exactly_one from airflow.utils.log.logging_mixin import LoggingMixin diff --git a/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py b/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py index 96a9b6edad8a2..ebf3c22d8d691 100644 --- a/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py +++ b/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py @@ -26,11 +26,7 @@ from airflow.exceptions import AirflowException from airflow.providers.amazon.aws.utils.sagemaker_unified_studio import is_local_runner - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.amazon.version_compat import BaseHook class SageMakerNotebookHook(BaseHook): diff --git a/providers/amazon/src/airflow/providers/amazon/aws/transfers/s3_to_sql.py b/providers/amazon/src/airflow/providers/amazon/aws/transfers/s3_to_sql.py index d70a7b105887f..a398538e24407 100644 --- a/providers/amazon/src/airflow/providers/amazon/aws/transfers/s3_to_sql.py +++ b/providers/amazon/src/airflow/providers/amazon/aws/transfers/s3_to_sql.py @@ -23,12 +23,7 @@ from airflow.exceptions import AirflowException from airflow.providers.amazon.aws.hooks.s3 import S3Hook -from airflow.providers.amazon.version_compat import BaseOperator - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.amazon.version_compat import BaseHook, BaseOperator if TYPE_CHECKING: from airflow.utils.context import Context diff --git a/providers/amazon/src/airflow/providers/amazon/aws/transfers/sql_to_s3.py b/providers/amazon/src/airflow/providers/amazon/aws/transfers/sql_to_s3.py index 9546db8fc990c..1f3f79d86f0ce 100644 --- a/providers/amazon/src/airflow/providers/amazon/aws/transfers/sql_to_s3.py +++ b/providers/amazon/src/airflow/providers/amazon/aws/transfers/sql_to_s3.py @@ -26,12 +26,7 @@ from airflow.exceptions import AirflowException from airflow.providers.amazon.aws.hooks.s3 import S3Hook -from airflow.providers.amazon.version_compat import BaseOperator - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.amazon.version_compat import BaseHook, BaseOperator if TYPE_CHECKING: import pandas as pd diff --git a/providers/amazon/src/airflow/providers/amazon/version_compat.py b/providers/amazon/src/airflow/providers/amazon/version_compat.py index badf23bd1ee77..befe89d465737 100644 --- a/providers/amazon/src/airflow/providers/amazon/version_compat.py +++ b/providers/amazon/src/airflow/providers/amazon/version_compat.py @@ -33,6 +33,12 @@ 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, BaseOperatorLink, BaseSensorOperator @@ -42,4 +48,12 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]: from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef] from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef] -__all__ = ["AIRFLOW_V_3_0_PLUS", "BaseOperator", "BaseOperatorLink", "BaseSensorOperator", "XCom"] +__all__ = [ + "AIRFLOW_V_3_0_PLUS", + "AIRFLOW_V_3_1_PLUS", + "BaseHook", + "BaseOperator", + "BaseOperatorLink", + "BaseSensorOperator", + "XCom", +] diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py b/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py index 0b561ce791356..53f033c4d6c5f 100644 --- a/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py +++ b/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py @@ -22,11 +22,7 @@ from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.amazon.version_compat import BaseHook from airflow.utils import timezone TEST_CONN = "aws_test_conn" diff --git a/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py b/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py index b3257f8b6783d..9c6b66537b0d7 100644 --- a/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py +++ b/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py @@ -22,11 +22,7 @@ from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook from airflow.providers.amazon.aws.sensors.base_aws import AwsBaseSensor - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.amazon.version_compat import BaseHook from airflow.utils import timezone TEST_CONN = "aws_test_conn"