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"]