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

kaxilnaik 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 63a5cfe689d Migrate `imap` provider to `common.compat` (#57091)
63a5cfe689d is described below

commit 63a5cfe689d3c0d628ca7ee9ea2819159ed31a8f
Author: ChenChen Lai <[email protected]>
AuthorDate: Sun Oct 26 08:51:46 2025 +0800

    Migrate `imap` provider to `common.compat` (#57091)
    
    * Migrate remaining providers to common.compat compatibility layer in imap
    
    * fix imap static check
    
    * Apply suggestion from @kaxil
    
    ---------
    
    Co-authored-by: Kaxil Naik <[email protected]>
---
 providers/imap/pyproject.toml                             |  2 ++
 providers/imap/src/airflow/providers/imap/hooks/imap.py   |  2 +-
 .../src/airflow/providers/imap/sensors/imap_attachment.py |  2 +-
 .../imap/src/airflow/providers/imap/version_compat.py     | 15 ++++-----------
 4 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/providers/imap/pyproject.toml b/providers/imap/pyproject.toml
index 21d0f08c3f9..de234094b57 100644
--- a/providers/imap/pyproject.toml
+++ b/providers/imap/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.8.0",
 ]
 
 [dependency-groups]
@@ -65,6 +66,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/imap/src/airflow/providers/imap/hooks/imap.py 
b/providers/imap/src/airflow/providers/imap/hooks/imap.py
index b4d35c370df..9fb2d158854 100644
--- a/providers/imap/src/airflow/providers/imap/hooks/imap.py
+++ b/providers/imap/src/airflow/providers/imap/hooks/imap.py
@@ -32,7 +32,7 @@ from collections.abc import Iterable
 from typing import TYPE_CHECKING, Any
 
 from airflow.exceptions import AirflowException
-from airflow.providers.imap.version_compat import BaseHook
+from airflow.providers.common.compat.sdk import BaseHook
 from airflow.utils.log.logging_mixin import LoggingMixin
 
 if TYPE_CHECKING:
diff --git 
a/providers/imap/src/airflow/providers/imap/sensors/imap_attachment.py 
b/providers/imap/src/airflow/providers/imap/sensors/imap_attachment.py
index cee07c6ce23..4f9ddb2d7a3 100644
--- a/providers/imap/src/airflow/providers/imap/sensors/imap_attachment.py
+++ b/providers/imap/src/airflow/providers/imap/sensors/imap_attachment.py
@@ -22,8 +22,8 @@ from __future__ import annotations
 from collections.abc import Sequence
 from typing import TYPE_CHECKING
 
+from airflow.providers.common.compat.sdk import BaseSensorOperator
 from airflow.providers.imap.hooks.imap import ImapHook
-from airflow.providers.imap.version_compat import BaseSensorOperator
 
 if TYPE_CHECKING:
     try:
diff --git a/providers/imap/src/airflow/providers/imap/version_compat.py 
b/providers/imap/src/airflow/providers/imap/version_compat.py
index 2002927fcf9..a4fae50317e 100644
--- a/providers/imap/src/airflow/providers/imap/version_compat.py
+++ b/providers/imap/src/airflow/providers/imap/version_compat.py
@@ -35,14 +35,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_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", "AIRFLOW_V_3_1_PLUS", "BaseHook", 
"BaseSensorOperator"]
+__all__ = [
+    "AIRFLOW_V_3_0_PLUS",
+    "AIRFLOW_V_3_1_PLUS",
+]

Reply via email to