From 4bc2350754544d76119a73fa3ec68e770257958d Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 23 Oct 2025 00:38:28 +0800 Subject: [PATCH 1/3] Migrate remaining providers to common.compat compatibility layer in grpc --- providers/grpc/pyproject.toml | 2 ++ .../grpc/src/airflow/providers/grpc/hooks/grpc.py | 2 +- .../src/airflow/providers/grpc/operators/grpc.py | 2 +- .../src/airflow/providers/grpc/version_compat.py | 15 ++++----------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/providers/grpc/pyproject.toml b/providers/grpc/pyproject.toml index 6c4f52999bcd8..c07c5b27f4b23 100644 --- a/providers/grpc/pyproject.toml +++ b/providers/grpc/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 # Google has very clear rules on what dependencies should be used. All the limits below # follow strict guidelines of Google Libraries as quoted here: # While this issue is open, dependents of google-api-core, google-cloud-core. and google-auth @@ -73,6 +74,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/grpc/src/airflow/providers/grpc/hooks/grpc.py b/providers/grpc/src/airflow/providers/grpc/hooks/grpc.py index 55ff3429cd8cb..37e7609623977 100644 --- a/providers/grpc/src/airflow/providers/grpc/hooks/grpc.py +++ b/providers/grpc/src/airflow/providers/grpc/hooks/grpc.py @@ -30,7 +30,7 @@ ) from airflow.exceptions import AirflowConfigException -from airflow.providers.grpc.version_compat import BaseHook +from airflow.providers.common.compat.sdk import BaseHook class GrpcHook(BaseHook): diff --git a/providers/grpc/src/airflow/providers/grpc/operators/grpc.py b/providers/grpc/src/airflow/providers/grpc/operators/grpc.py index d60c90b63c724..38dbfc1f9d759 100644 --- a/providers/grpc/src/airflow/providers/grpc/operators/grpc.py +++ b/providers/grpc/src/airflow/providers/grpc/operators/grpc.py @@ -21,7 +21,7 @@ from typing import TYPE_CHECKING, Any from airflow.providers.grpc.hooks.grpc import GrpcHook -from airflow.providers.grpc.version_compat import BaseOperator +from airflow.providers.common.compat.sdk import BaseOperator if TYPE_CHECKING: try: diff --git a/providers/grpc/src/airflow/providers/grpc/version_compat.py b/providers/grpc/src/airflow/providers/grpc/version_compat.py index df436e529f0d7..fe3ccfcfd3d7a 100644 --- a/providers/grpc/src/airflow/providers/grpc/version_compat.py +++ b/providers/grpc/src/airflow/providers/grpc/version_compat.py @@ -30,14 +30,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 BaseOperator -else: - from airflow.models import BaseOperator - -__all__ = ["AIRFLOW_V_3_0_PLUS", "AIRFLOW_V_3_1_PLUS", "BaseHook", "BaseOperator"] +__all__ = [ + "AIRFLOW_V_3_0_PLUS", + "AIRFLOW_V_3_1_PLUS", +] From 193c45ebb784c832ee58b7db34ecf4eeed75d07e Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 23 Oct 2025 14:53:23 +0800 Subject: [PATCH 2/3] fix grpc static check --- providers/grpc/src/airflow/providers/grpc/operators/grpc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/grpc/src/airflow/providers/grpc/operators/grpc.py b/providers/grpc/src/airflow/providers/grpc/operators/grpc.py index 38dbfc1f9d759..efa13f972bd92 100644 --- a/providers/grpc/src/airflow/providers/grpc/operators/grpc.py +++ b/providers/grpc/src/airflow/providers/grpc/operators/grpc.py @@ -20,8 +20,8 @@ from collections.abc import Callable, Sequence from typing import TYPE_CHECKING, Any -from airflow.providers.grpc.hooks.grpc import GrpcHook from airflow.providers.common.compat.sdk import BaseOperator +from airflow.providers.grpc.hooks.grpc import GrpcHook if TYPE_CHECKING: try: From 71dad897dfced866a7cdc289dab2fc0f05183ffc Mon Sep 17 00:00:00 2001 From: Kaxil Naik Date: Thu, 23 Oct 2025 16:36:22 +0100 Subject: [PATCH 3/3] Apply suggestion from @kaxil --- providers/grpc/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/grpc/pyproject.toml b/providers/grpc/pyproject.toml index c07c5b27f4b23..b990a3a25d27e 100644 --- a/providers/grpc/pyproject.toml +++ b/providers/grpc/pyproject.toml @@ -58,7 +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 + "apache-airflow-providers-common-compat>=1.8.0", # Google has very clear rules on what dependencies should be used. All the limits below # follow strict guidelines of Google Libraries as quoted here: # While this issue is open, dependents of google-api-core, google-cloud-core. and google-auth