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 026444b1ad2 Migrate `ftp` provider to `common.compat` (#57127)
026444b1ad2 is described below
commit 026444b1ad245e5175f0de958afc329819d68cf0
Author: Bhavani Ravi <[email protected]>
AuthorDate: Thu Oct 23 20:57:54 2025 +0530
Migrate `ftp` provider to `common.compat` (#57127)
---
providers/ftp/pyproject.toml | 1 +
providers/ftp/src/airflow/providers/ftp/hooks/ftp.py | 2 +-
providers/ftp/src/airflow/providers/ftp/operators/ftp.py | 2 +-
providers/ftp/src/airflow/providers/ftp/sensors/ftp.py | 8 ++------
providers/ftp/src/airflow/providers/ftp/version_compat.py | 13 +------------
5 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/providers/ftp/pyproject.toml b/providers/ftp/pyproject.toml
index 06d0effe2a5..bde214182f7 100644
--- a/providers/ftp/pyproject.toml
+++ b/providers/ftp/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",
]
# The optional dependencies should be modified in place in the generated file
diff --git a/providers/ftp/src/airflow/providers/ftp/hooks/ftp.py
b/providers/ftp/src/airflow/providers/ftp/hooks/ftp.py
index 89131dfc2cf..808ed49ac69 100644
--- a/providers/ftp/src/airflow/providers/ftp/hooks/ftp.py
+++ b/providers/ftp/src/airflow/providers/ftp/hooks/ftp.py
@@ -23,7 +23,7 @@ import logging
from collections.abc import Callable
from typing import Any, cast
-from airflow.providers.ftp.version_compat import BaseHook
+from airflow.providers.common.compat.sdk import BaseHook
logger = logging.getLogger(__name__)
diff --git a/providers/ftp/src/airflow/providers/ftp/operators/ftp.py
b/providers/ftp/src/airflow/providers/ftp/operators/ftp.py
index 8c055eaa64e..23a111b443e 100644
--- a/providers/ftp/src/airflow/providers/ftp/operators/ftp.py
+++ b/providers/ftp/src/airflow/providers/ftp/operators/ftp.py
@@ -27,8 +27,8 @@ from functools import cached_property
from pathlib import Path
from typing import Any
+from airflow.providers.common.compat.sdk import BaseOperator
from airflow.providers.ftp.hooks.ftp import FTPHook, FTPSHook
-from airflow.providers.ftp.version_compat import BaseOperator
class FTPOperation:
diff --git a/providers/ftp/src/airflow/providers/ftp/sensors/ftp.py
b/providers/ftp/src/airflow/providers/ftp/sensors/ftp.py
index f0e3f31d5ba..7fc38b22587 100644
--- a/providers/ftp/src/airflow/providers/ftp/sensors/ftp.py
+++ b/providers/ftp/src/airflow/providers/ftp/sensors/ftp.py
@@ -22,15 +22,11 @@ import re
from collections.abc import Sequence
from typing import TYPE_CHECKING
+from airflow.providers.common.compat.sdk import BaseSensorOperator
from airflow.providers.ftp.hooks.ftp import FTPHook, FTPSHook
-from airflow.providers.ftp.version_compat import BaseSensorOperator
if TYPE_CHECKING:
- try:
- from airflow.sdk.definitions.context import Context
- except ImportError:
- # TODO: Remove once provider drops support for Airflow 2
- from airflow.utils.context import Context
+ from airflow.providers.common.compat.sdk import Context
class FTPSensor(BaseSensorOperator):
diff --git a/providers/ftp/src/airflow/providers/ftp/version_compat.py
b/providers/ftp/src/airflow/providers/ftp/version_compat.py
index 1aebc0c57ed..f5bb3ae555c 100644
--- a/providers/ftp/src/airflow/providers/ftp/version_compat.py
+++ b/providers/ftp/src/airflow/providers/ftp/version_compat.py
@@ -35,15 +35,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_0_PLUS:
- from airflow.sdk import BaseOperator, BaseSensorOperator
-else:
- from airflow.models import BaseOperator
- from airflow.sensors.base import BaseSensorOperator # 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", "BaseSensorOperator"]
+__all__ = ["AIRFLOW_V_3_0_PLUS", "AIRFLOW_V_3_1_PLUS"]