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 d8520ed7cf0 Replace `BaseHook` to Task SDK for `apache/cassandra`
(#52689)
d8520ed7cf0 is described below
commit d8520ed7cf0cd7390a7e6fabe06fa9307b6f1cf5
Author: Dov Benyomin Sohacheski <[email protected]>
AuthorDate: Fri Jul 4 07:06:54 2025 +0300
Replace `BaseHook` to Task SDK for `apache/cassandra` (#52689)
---
.../airflow/providers/apache/cassandra/hooks/cassandra.py | 5 +----
.../airflow/providers/apache/cassandra/version_compat.py | 14 +++++++++++++-
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git
a/providers/apache/cassandra/src/airflow/providers/apache/cassandra/hooks/cassandra.py
b/providers/apache/cassandra/src/airflow/providers/apache/cassandra/hooks/cassandra.py
index 3b5af5fa704..cdf21aad1bf 100644
---
a/providers/apache/cassandra/src/airflow/providers/apache/cassandra/hooks/cassandra.py
+++
b/providers/apache/cassandra/src/airflow/providers/apache/cassandra/hooks/cassandra.py
@@ -31,10 +31,7 @@ from cassandra.policies import (
WhiteListRoundRobinPolicy,
)
-try:
- from airflow.sdk import BaseHook
-except ImportError:
- from airflow.hooks.base import BaseHook # type:
ignore[attr-defined,no-redef]
+from airflow.providers.apache.cassandra.version_compat import BaseHook
from airflow.utils.log.logging_mixin import LoggingMixin
Policy: TypeAlias = DCAwareRoundRobinPolicy | RoundRobinPolicy |
TokenAwarePolicy | WhiteListRoundRobinPolicy
diff --git
a/providers/apache/cassandra/src/airflow/providers/apache/cassandra/version_compat.py
b/providers/apache/cassandra/src/airflow/providers/apache/cassandra/version_compat.py
index 319d86aca69..a0de7660054 100644
---
a/providers/apache/cassandra/src/airflow/providers/apache/cassandra/version_compat.py
+++
b/providers/apache/cassandra/src/airflow/providers/apache/cassandra/version_compat.py
@@ -33,10 +33,22 @@ 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 BaseSensorOperator
else:
from airflow.sensors.base import BaseSensorOperator # type:
ignore[no-redef]
-__all__ = ["AIRFLOW_V_3_0_PLUS", "BaseSensorOperator"]
+__all__ = [
+ "AIRFLOW_V_3_0_PLUS",
+ "AIRFLOW_V_3_1_PLUS",
+ "BaseHook",
+ "BaseSensorOperator",
+]