This is an automated email from the ASF dual-hosted git repository.
eladkal 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 d4afdc5248f Moving BaseHook usages to version_compat for smtp (#52950)
d4afdc5248f is described below
commit d4afdc5248f52b1514ace33399b883d9abac0438
Author: Amogh Desai <[email protected]>
AuthorDate: Mon Jul 7 08:30:47 2025 +0530
Moving BaseHook usages to version_compat for smtp (#52950)
---
providers/smtp/src/airflow/providers/smtp/hooks/smtp.py | 6 +-----
providers/smtp/src/airflow/providers/smtp/version_compat.py | 8 ++++++++
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/providers/smtp/src/airflow/providers/smtp/hooks/smtp.py
b/providers/smtp/src/airflow/providers/smtp/hooks/smtp.py
index ac06effffa4..245e2772a3e 100644
--- a/providers/smtp/src/airflow/providers/smtp/hooks/smtp.py
+++ b/providers/smtp/src/airflow/providers/smtp/hooks/smtp.py
@@ -37,11 +37,7 @@ from pathlib import Path
from typing import TYPE_CHECKING, Any, cast
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.smtp.version_compat import BaseHook
if TYPE_CHECKING:
try:
diff --git a/providers/smtp/src/airflow/providers/smtp/version_compat.py
b/providers/smtp/src/airflow/providers/smtp/version_compat.py
index 1db30bd4762..75d9c5bb3d9 100644
--- a/providers/smtp/src/airflow/providers/smtp/version_compat.py
+++ b/providers/smtp/src/airflow/providers/smtp/version_compat.py
@@ -33,6 +33,7 @@ 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_0_PLUS:
from airflow.sdk import BaseOperator
@@ -41,8 +42,15 @@ else:
from airflow.models import BaseOperator # type: ignore[no-redef]
from airflow.utils.context import Context # type: ignore[no-redef]
+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",
"Context",
]