From 42842ee1cf7160fdc7ee29296d5818731b34528c Mon Sep 17 00:00:00 2001 From: rich7420 Date: Wed, 22 Oct 2025 23:50:36 +0800 Subject: [PATCH 1/3] Migrate remaining providers to common.compat compatibility layer --- providers/segment/pyproject.toml | 6 ++++++ .../airflow/providers/segment/hooks/segment.py | 2 +- .../segment/operators/segment_track_event.py | 4 ++-- .../airflow/providers/segment/version_compat.py | 17 +---------------- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/providers/segment/pyproject.toml b/providers/segment/pyproject.toml index d48ad31958ab0..f73353592049c 100644 --- a/providers/segment/pyproject.toml +++ b/providers/segment/pyproject.toml @@ -63,11 +63,17 @@ dependencies = [ "segment-analytics-python>=2.3.0", ] +[project.optional-dependencies] +"common.compat" = [ + "apache-airflow-providers-common-compat>=1.7.4", # + TODO: bump to next version +] + [dependency-groups] 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/segment/src/airflow/providers/segment/hooks/segment.py b/providers/segment/src/airflow/providers/segment/hooks/segment.py index 8928e1968f95d..a39e7d3df983a 100644 --- a/providers/segment/src/airflow/providers/segment/hooks/segment.py +++ b/providers/segment/src/airflow/providers/segment/hooks/segment.py @@ -27,7 +27,7 @@ import segment.analytics as analytics from airflow.exceptions import AirflowException -from airflow.providers.segment.version_compat import BaseHook +from airflow.providers.common.compat.sdk import BaseHook class SegmentHook(BaseHook): diff --git a/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py b/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py index d888da753be64..65043ac197dbf 100644 --- a/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py +++ b/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py @@ -21,10 +21,10 @@ from typing import TYPE_CHECKING from airflow.providers.segment.hooks.segment import SegmentHook -from airflow.providers.segment.version_compat import BaseOperator +from airflow.providers.common.compat.sdk import BaseOperator if TYPE_CHECKING: - from airflow.providers.segment.version_compat import Context + from airflow.providers.common.compat.sdk import Context class SegmentTrackEventOperator(BaseOperator): diff --git a/providers/segment/src/airflow/providers/segment/version_compat.py b/providers/segment/src/airflow/providers/segment/version_compat.py index 75318bdbe64bc..a4fae50317e81 100644 --- a/providers/segment/src/airflow/providers/segment/version_compat.py +++ b/providers/segment/src/airflow/providers/segment/version_compat.py @@ -35,22 +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_0_PLUS: - from airflow.sdk import BaseOperator - from airflow.sdk.definitions.context import Context -else: - from airflow.models import BaseOperator - from airflow.utils.context import Context - -if AIRFLOW_V_3_1_PLUS: - from airflow.sdk import BaseHook -else: - from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef] - -# Explicitly export these imports to protect them from being removed by linters __all__ = [ "AIRFLOW_V_3_0_PLUS", - "BaseHook", - "BaseOperator", - "Context", + "AIRFLOW_V_3_1_PLUS", ] From f23ab76f9565161f8f83270f574eacba62f2f165 Mon Sep 17 00:00:00 2001 From: rich7420 Date: Thu, 23 Oct 2025 00:53:06 +0800 Subject: [PATCH 2/3] modify dependency error --- providers/segment/pyproject.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/providers/segment/pyproject.toml b/providers/segment/pyproject.toml index f73353592049c..88dca1c40d98f 100644 --- a/providers/segment/pyproject.toml +++ b/providers/segment/pyproject.toml @@ -58,16 +58,12 @@ 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 # segment-analytics-python is in mantaincnce mode. # Review changing to https://github.com/segmentio/public-api-sdk-python when ready? (currently in beta) "segment-analytics-python>=2.3.0", ] -[project.optional-dependencies] -"common.compat" = [ - "apache-airflow-providers-common-compat>=1.7.4", # + TODO: bump to next version -] - [dependency-groups] dev = [ "apache-airflow", From add0568065c9f228c71da67618326ee1303eda03 Mon Sep 17 00:00:00 2001 From: rich7420 Date: Thu, 23 Oct 2025 01:26:48 +0800 Subject: [PATCH 3/3] ruff error --- .../airflow/providers/segment/operators/segment_track_event.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py b/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py index 65043ac197dbf..3e853177214e3 100644 --- a/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py +++ b/providers/segment/src/airflow/providers/segment/operators/segment_track_event.py @@ -20,8 +20,8 @@ from collections.abc import Sequence from typing import TYPE_CHECKING -from airflow.providers.segment.hooks.segment import SegmentHook from airflow.providers.common.compat.sdk import BaseOperator +from airflow.providers.segment.hooks.segment import SegmentHook if TYPE_CHECKING: from airflow.providers.common.compat.sdk import Context