From 4935f57f28fa8e23dd5aab0d8375e24c3cad13e7 Mon Sep 17 00:00:00 2001 From: kyungjunleeme Date: Fri, 4 Jul 2025 17:03:31 +0900 Subject: [PATCH 1/3] ADD: AIRFLOW_V_3_1_PLUS --- .../airflow/providers/opensearch/version_compat.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/providers/opensearch/src/airflow/providers/opensearch/version_compat.py b/providers/opensearch/src/airflow/providers/opensearch/version_compat.py index e7a259afb357c..45c682b575d12 100644 --- a/providers/opensearch/src/airflow/providers/opensearch/version_compat.py +++ b/providers/opensearch/src/airflow/providers/opensearch/version_compat.py @@ -32,14 +32,23 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]: return airflow_version.major, airflow_version.minor, airflow_version.micro -AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0) +AIRFLOW_V_3_0_PLUS: bool = 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_0_PLUS: from airflow.sdk import BaseOperator else: from airflow.models import BaseOperator +if AIRFLOW_V_3_1_PLUS: + from airflow.sdk import BaseHook +else: + from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] + + __all__ = [ "AIRFLOW_V_3_0_PLUS", + "AIRFLOW_V_3_1_PLUS", + "BaseHook", "BaseOperator", ] From 59372091f828513f7f228b5b2ebba8b0ed8a32fe Mon Sep 17 00:00:00 2001 From: kyungjunleeme Date: Fri, 4 Jul 2025 17:06:37 +0900 Subject: [PATCH 2/3] CHG: import method --- .../src/airflow/providers/opensearch/hooks/opensearch.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/providers/opensearch/src/airflow/providers/opensearch/hooks/opensearch.py b/providers/opensearch/src/airflow/providers/opensearch/hooks/opensearch.py index 6a6e69ea4201f..9ac6f6ca24da9 100644 --- a/providers/opensearch/src/airflow/providers/opensearch/hooks/opensearch.py +++ b/providers/opensearch/src/airflow/providers/opensearch/hooks/opensearch.py @@ -27,11 +27,7 @@ from opensearchpy import Connection as OpenSearchConnectionClass from airflow.exceptions import AirflowException - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.opensearch.version_compat import BaseHook from airflow.utils.strings import to_boolean From 434ee45d99759b3d7796d7bc7f2ac65d295215e4 Mon Sep 17 00:00:00 2001 From: kyungjunleeme Date: Fri, 4 Jul 2025 17:19:00 +0900 Subject: [PATCH 3/3] CHG: import method --- providers/opensearch/tests/unit/opensearch/conftest.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/providers/opensearch/tests/unit/opensearch/conftest.py b/providers/opensearch/tests/unit/opensearch/conftest.py index 93bcf37e00ff6..8b29d61d76135 100644 --- a/providers/opensearch/tests/unit/opensearch/conftest.py +++ b/providers/opensearch/tests/unit/opensearch/conftest.py @@ -21,11 +21,7 @@ import pytest from airflow.models import Connection - -try: - from airflow.sdk import BaseHook -except ImportError: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] +from airflow.providers.opensearch.version_compat import BaseHook try: from opensearchpy import OpenSearch