You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by el...@apache.org on 2025/10/22 05:22:54 UTC
(airflow) branch main updated: Migrate sendgrid provider to ``common.compat`` (#57021)
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 a04fc1407d6 Migrate sendgrid provider to ``common.compat`` (#57021)
a04fc1407d6 is described below
commit a04fc1407d662ba11275f5b5f78d6d79a516419e
Author: Kaxil Naik <ka...@apache.org>
AuthorDate: Wed Oct 22 06:22:48 2025 +0100
Migrate sendgrid provider to ``common.compat`` (#57021)
Replace version-specific conditional imports with ``common.compat`` layer.
This standardizes compatibility handling across Airflow 2.x and 3.x.
---
providers/sendgrid/pyproject.toml | 2 ++
.../sendgrid/src/airflow/providers/sendgrid/utils/emailer.py | 2 +-
.../sendgrid/src/airflow/providers/sendgrid/version_compat.py | 9 +--------
3 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/providers/sendgrid/pyproject.toml b/providers/sendgrid/pyproject.toml
index 637db72b234..f1620ed9856 100644
--- a/providers/sendgrid/pyproject.toml
+++ b/providers/sendgrid/pyproject.toml
@@ -58,6 +58,7 @@ requires-python = ">=3.10"
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.10.0",
+ "apache-airflow-providers-common-compat>=1.7.4", # + TODO: bump to next version
# workaround conflicts with fab for Python 3.12 https://github.com/apache/airflow/pull/50221#issuecomment-2926765112
# can be set to sendgrid>=6.12.3 when we upgrade to fab 5 and remove Werkzeug dependency
"sendgrid>=6.12.3; python_version < '3.12'",
@@ -70,6 +71,7 @@ dev = [
"apache-airflow",
"apache-airflow-task-sdk",
"apache-airflow-devel-common",
+ "apache-airflow-providers-common-compat",
# Additional devel dependencies (do not remove this line and add extra development dependencies)
]
diff --git a/providers/sendgrid/src/airflow/providers/sendgrid/utils/emailer.py b/providers/sendgrid/src/airflow/providers/sendgrid/utils/emailer.py
index fadc5e37544..2c3cf4bf325 100644
--- a/providers/sendgrid/src/airflow/providers/sendgrid/utils/emailer.py
+++ b/providers/sendgrid/src/airflow/providers/sendgrid/utils/emailer.py
@@ -38,7 +38,7 @@ from sendgrid.helpers.mail import (
SandBoxMode,
)
-from airflow.providers.sendgrid.version_compat import BaseHook
+from airflow.providers.common.compat.sdk import BaseHook
from airflow.utils.email import get_email_address_list
log = logging.getLogger(__name__)
diff --git a/providers/sendgrid/src/airflow/providers/sendgrid/version_compat.py b/providers/sendgrid/src/airflow/providers/sendgrid/version_compat.py
index e6291ea129c..aafb6c89603 100644
--- a/providers/sendgrid/src/airflow/providers/sendgrid/version_compat.py
+++ b/providers/sendgrid/src/airflow/providers/sendgrid/version_compat.py
@@ -30,11 +30,4 @@ 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]
-
-__all__ = [
- "BaseHook",
-]
+__all__ = ["AIRFLOW_V_3_0_PLUS", "AIRFLOW_V_3_1_PLUS"]