This is an automated email from the ASF dual-hosted git repository.

amoghdesai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 5d5a6d6d0a6 Replace BaseHook to Task SDK for microsoft azure (#52821)
5d5a6d6d0a6 is described below

commit 5d5a6d6d0a6e38e90876b04a94c3a1d624d45e27
Author: fweilun <william20020...@gmail.com>
AuthorDate: Sat Jul 5 23:01:49 2025 +0800

    Replace BaseHook to Task SDK for microsoft azure (#52821)
---
 .../azure/src/airflow/providers/microsoft/azure/fs/adls.py     |  6 +-----
 .../azure/src/airflow/providers/microsoft/azure/hooks/adx.py   |  6 +-----
 .../azure/src/airflow/providers/microsoft/azure/hooks/asb.py   |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/base_azure.py  |  6 +-----
 .../azure/src/airflow/providers/microsoft/azure/hooks/batch.py |  6 +-----
 .../providers/microsoft/azure/hooks/container_registry.py      |  6 +-----
 .../providers/microsoft/azure/hooks/container_volume.py        |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/cosmos.py      |  6 +-----
 .../airflow/providers/microsoft/azure/hooks/data_factory.py    |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/data_lake.py   |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/fileshare.py   |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/msgraph.py     |  6 +-----
 .../src/airflow/providers/microsoft/azure/hooks/synapse.py     |  6 +-----
 .../azure/src/airflow/providers/microsoft/azure/hooks/wasb.py  |  6 +-----
 .../providers/microsoft/azure/operators/data_factory.py        | 10 ++++------
 .../src/airflow/providers/microsoft/azure/operators/synapse.py | 10 ++++------
 .../src/airflow/providers/microsoft/azure/version_compat.py    |  7 +++++++
 17 files changed, 29 insertions(+), 82 deletions(-)

diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/fs/adls.py 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/fs/adls.py
index ef9fe01d487..299d9f775df 100644
--- a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/fs/adls.py
+++ b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/fs/adls.py
@@ -21,11 +21,7 @@ from typing import TYPE_CHECKING, Any
 from azure.identity import ClientSecretCredential
 
 from airflow.providers.microsoft.azure.utils import get_field, 
parse_blob_account_url
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from fsspec import AbstractFileSystem
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/adx.py 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/adx.py
index 819725ca2c3..d83cab1c05b 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/adx.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/adx.py
@@ -38,11 +38,7 @@ from airflow.providers.microsoft.azure.utils import (
     add_managed_identity_connection_widgets,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from azure.kusto.data.response import KustoResponseDataSet
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/asb.py 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/asb.py
index a49c9598d49..cac10ca0b3e 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/asb.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/asb.py
@@ -42,11 +42,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     import datetime
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/base_azure.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/base_azure.py
index 2a625becba7..2a59234e0a4 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/base_azure.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/base_azure.py
@@ -26,11 +26,7 @@ from airflow.providers.microsoft.azure.utils import (
     AzureIdentityCredentialAdapter,
     add_managed_identity_connection_widgets,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 
 class AzureBaseHook(BaseHook):
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/batch.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/batch.py
index e60ff635978..96494e56f5e 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/batch.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/batch.py
@@ -30,11 +30,7 @@ from airflow.providers.microsoft.azure.utils import (
     add_managed_identity_connection_widgets,
     get_field,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 from airflow.utils import timezone
 
 if TYPE_CHECKING:
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_registry.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_registry.py
index d53f1dd3176..521665caf12 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_registry.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_registry.py
@@ -30,11 +30,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 
 class AzureContainerRegistryHook(BaseHook):
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_volume.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_volume.py
index c652940cb52..ed6a063011b 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_volume.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/container_volume.py
@@ -26,11 +26,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 
 class AzureContainerVolumeHook(BaseHook):
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/cosmos.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/cosmos.py
index 296c49297ad..8c695e1cd68 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/cosmos.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/cosmos.py
@@ -41,11 +41,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     PartitionKeyType = str | list[str]
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_factory.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_factory.py
index fc33473f5f9..c49b066ea26 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_factory.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_factory.py
@@ -54,11 +54,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_async_default_azure_credential,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from azure.core.polling import LROPoller
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_lake.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_lake.py
index c132a68f532..43fad25cf57 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_lake.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/data_lake.py
@@ -39,11 +39,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 Credentials = ClientSecretCredential | AzureIdentityCredentialAdapter | 
DefaultAzureCredential
 
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/fileshare.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/fileshare.py
index f45c9766e7d..439be31bb03 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/fileshare.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/fileshare.py
@@ -25,11 +25,7 @@ from airflow.providers.microsoft.azure.utils import (
     add_managed_identity_connection_widgets,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 
 class AzureFileShareHook(BaseHook):
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/msgraph.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/msgraph.py
index 71f286fb641..2674b304f7a 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/msgraph.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/msgraph.py
@@ -50,11 +50,7 @@ from airflow.exceptions import (
     AirflowException,
     AirflowNotFoundException,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from azure.identity._internal.client_credential_base import 
ClientCredentialBase
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/synapse.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/synapse.py
index f470e4e375e..ceb86142aec 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/synapse.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/synapse.py
@@ -30,11 +30,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_field,
     get_sync_default_azure_credential,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from azure.synapse.artifacts.models import CreateRunResponse, PipelineRun
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/wasb.py 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/wasb.py
index b981e1bd049..9db0130ce77 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/wasb.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/wasb.py
@@ -52,11 +52,7 @@ from airflow.providers.microsoft.azure.utils import (
     get_sync_default_azure_credential,
     parse_blob_account_url,
 )
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
+from airflow.providers.microsoft.azure.version_compat import BaseHook
 
 if TYPE_CHECKING:
     from azure.core.credentials import TokenCredential
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/data_factory.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/data_factory.py
index b733e74f391..8ad795e5a46 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/data_factory.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/data_factory.py
@@ -31,12 +31,10 @@ from airflow.providers.microsoft.azure.hooks.data_factory 
import (
     get_field,
 )
 from airflow.providers.microsoft.azure.triggers.data_factory import 
AzureDataFactoryTrigger
-
-try:
-    from airflow.sdk import BaseHook
-except ImportError:
-    from airflow.hooks.base import BaseHook  # type: 
ignore[attr-defined,no-redef]
-from airflow.providers.microsoft.azure.version_compat import BaseOperator
+from airflow.providers.microsoft.azure.version_compat import (
+    BaseHook,
+    BaseOperator,
+)
 from airflow.utils.log.logging_mixin import LoggingMixin
 
 if TYPE_CHECKING:
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/synapse.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/synapse.py
index 85f40863526..17c80b8bd45 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/synapse.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/synapse.py
@@ -29,12 +29,10 @@ from airflow.providers.microsoft.azure.hooks.synapse import 
(
     AzureSynapsePipelineRunStatus,
     AzureSynapseSparkBatchRunStatus,
 )
-from airflow.providers.microsoft.azure.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.microsoft.azure.version_compat import (
+    BaseHook,
+    BaseOperator,
+)
 
 if TYPE_CHECKING:
     from azure.synapse.spark.models import SparkBatchJobOptions
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/version_compat.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/version_compat.py
index 8a5eeb817bf..38251008668 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/version_compat.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/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 = 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 (
@@ -46,6 +52,7 @@ else:
 
 __all__ = [
     "AIRFLOW_V_3_0_PLUS",
+    "BaseHook",
     "BaseOperator",
     "BaseOperatorLink",
     "BaseSensorOperator",

Reply via email to