diff --git a/providers/jdbc/pyproject.toml b/providers/jdbc/pyproject.toml index 5124cf9034bc2..ae16effb33475 100644 --- a/providers/jdbc/pyproject.toml +++ b/providers/jdbc/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 "apache-airflow-providers-common-sql>=1.20.0", "jaydebeapi>=1.1.1", ] @@ -67,6 +68,7 @@ dev = [ "apache-airflow", "apache-airflow-task-sdk", "apache-airflow-devel-common", + "apache-airflow-providers-common-compat", "apache-airflow-providers-common-sql", # Additional devel dependencies (do not remove this line and add extra development dependencies) ] diff --git a/providers/jdbc/src/airflow/providers/jdbc/hooks/jdbc.py b/providers/jdbc/src/airflow/providers/jdbc/hooks/jdbc.py index 219311ae26910..fba6400e118b4 100644 --- a/providers/jdbc/src/airflow/providers/jdbc/hooks/jdbc.py +++ b/providers/jdbc/src/airflow/providers/jdbc/hooks/jdbc.py @@ -31,11 +31,7 @@ from airflow.providers.common.sql.hooks.sql import DbApiHook if TYPE_CHECKING: - if TYPE_CHECKING: - try: - from airflow.sdk import Connection - except ImportError: - from airflow.models.connection import Connection # type: ignore[assignment] + from airflow.providers.common.compat.sdk import Connection @contextmanager diff --git a/providers/jenkins/pyproject.toml b/providers/jenkins/pyproject.toml index a055b5859822d..f4e4a248e94a8 100644 --- a/providers/jenkins/pyproject.toml +++ b/providers/jenkins/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 "python-jenkins>=1.8.2", ] @@ -66,6 +67,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/jenkins/src/airflow/providers/jenkins/hooks/jenkins.py b/providers/jenkins/src/airflow/providers/jenkins/hooks/jenkins.py index c73adcbf02294..ee0a6dd486a49 100644 --- a/providers/jenkins/src/airflow/providers/jenkins/hooks/jenkins.py +++ b/providers/jenkins/src/airflow/providers/jenkins/hooks/jenkins.py @@ -21,7 +21,7 @@ import jenkins -from airflow.providers.jenkins.version_compat import BaseHook +from airflow.providers.common.compat.sdk import BaseHook class JenkinsHook(BaseHook): diff --git a/providers/jenkins/src/airflow/providers/jenkins/operators/jenkins_job_trigger.py b/providers/jenkins/src/airflow/providers/jenkins/operators/jenkins_job_trigger.py index 8055963204697..b79ef5f6c89c8 100644 --- a/providers/jenkins/src/airflow/providers/jenkins/operators/jenkins_job_trigger.py +++ b/providers/jenkins/src/airflow/providers/jenkins/operators/jenkins_job_trigger.py @@ -30,8 +30,8 @@ from requests import Request from airflow.exceptions import AirflowException +from airflow.providers.common.compat.sdk import BaseOperator from airflow.providers.jenkins.hooks.jenkins import JenkinsHook -from airflow.providers.jenkins.version_compat import BaseOperator JenkinsRequest = Mapping[str, Any] ParamType = str | dict | list | None diff --git a/providers/jenkins/src/airflow/providers/jenkins/sensors/jenkins.py b/providers/jenkins/src/airflow/providers/jenkins/sensors/jenkins.py index faceda77ff05c..bfc3701e20ff1 100644 --- a/providers/jenkins/src/airflow/providers/jenkins/sensors/jenkins.py +++ b/providers/jenkins/src/airflow/providers/jenkins/sensors/jenkins.py @@ -18,14 +18,10 @@ from __future__ import annotations from collections.abc import Iterable -from typing import TYPE_CHECKING from airflow.exceptions import AirflowException +from airflow.providers.common.compat.sdk import BaseSensorOperator, Context from airflow.providers.jenkins.hooks.jenkins import JenkinsHook -from airflow.providers.jenkins.version_compat import BaseSensorOperator - -if TYPE_CHECKING: - from airflow.providers.jenkins.version_compat import Context class JenkinsBuildSensor(BaseSensorOperator): diff --git a/providers/jenkins/src/airflow/providers/jenkins/version_compat.py b/providers/jenkins/src/airflow/providers/jenkins/version_compat.py index da458b9effc70..a4fae50317e81 100644 --- a/providers/jenkins/src/airflow/providers/jenkins/version_compat.py +++ b/providers/jenkins/src/airflow/providers/jenkins/version_compat.py @@ -35,24 +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 BaseOperator, BaseSensorOperator - from airflow.sdk.definitions.context import Context -else: - from airflow.models import BaseOperator - from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef] - from airflow.utils.context import Context - __all__ = [ "AIRFLOW_V_3_0_PLUS", "AIRFLOW_V_3_1_PLUS", - "BaseHook", - "BaseOperator", - "BaseSensorOperator", - "Context", ]