From 337b724c29267452c72d94d565951ac74a806b83 Mon Sep 17 00:00:00 2001 From: Dov Benyomin Sohacheski Date: Wed, 2 Jul 2025 08:44:23 +0300 Subject: [PATCH 1/2] Replace BaseHook to Task SDK for apache/hive --- .../hive/src/airflow/providers/apache/hive/hooks/hive.py | 7 +------ .../src/airflow/providers/apache/hive/version_compat.py | 4 +++- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py b/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py index 6c3f55c015636..b72f87f87162c 100644 --- a/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py +++ b/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py @@ -38,13 +38,8 @@ from airflow.configuration import conf from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning -from airflow.providers.apache.hive.version_compat import AIRFLOW_VAR_NAME_FORMAT_MAPPING +from airflow.providers.apache.hive.version_compat import AIRFLOW_VAR_NAME_FORMAT_MAPPING, BaseHook from airflow.providers.common.sql.hooks.sql import DbApiHook - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] from airflow.security import utils from airflow.utils.helpers import as_flattened_list diff --git a/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py b/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py index 88b3690d40b2b..cd2f7ab44d126 100644 --- a/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py +++ b/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py @@ -35,9 +35,10 @@ 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, BaseSensorOperator + from airflow.sdk import BaseHook, BaseOperator, BaseSensorOperator from airflow.sdk.execution_time.context import AIRFLOW_VAR_NAME_FORMAT_MAPPING, context_to_airflow_vars else: + from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] from airflow.models import BaseOperator from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef] from airflow.utils.operator_helpers import ( # type: ignore[no-redef, attr-defined] @@ -48,6 +49,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]: __all__ = [ "AIRFLOW_V_3_0_PLUS", + "BaseHook", "BaseOperator", "BaseSensorOperator", "AIRFLOW_VAR_NAME_FORMAT_MAPPING", From 40c673173647c9283b11ad2cd290c122bcfd3261 Mon Sep 17 00:00:00 2001 From: Dov Benyomin Sohacheski Date: Thu, 3 Jul 2025 16:58:06 +0300 Subject: [PATCH 2/2] Ready for review --- .../airflow/providers/apache/hive/version_compat.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py b/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py index cd2f7ab44d126..832df86ea391d 100644 --- a/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py +++ b/providers/apache/hive/src/airflow/providers/apache/hive/version_compat.py @@ -33,12 +33,17 @@ 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 BaseHook, BaseOperator, BaseSensorOperator + from airflow.sdk import BaseOperator, BaseSensorOperator from airflow.sdk.execution_time.context import AIRFLOW_VAR_NAME_FORMAT_MAPPING, context_to_airflow_vars else: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] from airflow.models import BaseOperator from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef] from airflow.utils.operator_helpers import ( # type: ignore[no-redef, attr-defined] @@ -49,6 +54,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]: __all__ = [ "AIRFLOW_V_3_0_PLUS", + "AIRFLOW_V_3_1_PLUS", "BaseHook", "BaseOperator", "BaseSensorOperator",