Skip to content

Commit 51ddece

Browse files
Update Jenkins for Airflow 3.0 BaseOperator compatibility (#52510)
Part of #52378
1 parent d4540c8 commit 51ddece

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

providers/jenkins/src/airflow/providers/jenkins/operators/jenkins_job_trigger.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
from requests import Request
3131

3232
from airflow.exceptions import AirflowException
33-
from airflow.models import BaseOperator
3433
from airflow.providers.jenkins.hooks.jenkins import JenkinsHook
34+
from airflow.providers.jenkins.version_compat import BaseOperator
3535

3636
JenkinsRequest = Mapping[str, Any]
3737
ParamType = str | dict | list | None

providers/jenkins/src/airflow/providers/jenkins/sensors/jenkins.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,10 @@
2222

2323
from airflow.exceptions import AirflowException
2424
from airflow.providers.jenkins.hooks.jenkins import JenkinsHook
25-
from airflow.providers.jenkins.version_compat import AIRFLOW_V_3_0_PLUS
26-
27-
if AIRFLOW_V_3_0_PLUS:
28-
from airflow.sdk import BaseSensorOperator
29-
else:
30-
from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
25+
from airflow.providers.jenkins.version_compat import BaseSensorOperator
3126

3227
if TYPE_CHECKING:
33-
try:
34-
from airflow.sdk.definitions.context import Context
35-
except ImportError:
36-
# TODO: Remove once provider drops support for Airflow 2
37-
from airflow.utils.context import Context
28+
from airflow.providers.jenkins.version_compat import Context
3829

3930

4031
class JenkinsBuildSensor(BaseSensorOperator):

providers/jenkins/src/airflow/providers/jenkins/version_compat.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,18 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
3333

3434

3535
AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36+
37+
if AIRFLOW_V_3_0_PLUS:
38+
from airflow.sdk import BaseOperator, BaseSensorOperator
39+
from airflow.sdk.definitions.context import Context
40+
else:
41+
from airflow.models import BaseOperator # type: ignore[no-redef]
42+
from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
43+
from airflow.utils.context import Context # type: ignore[no-redef]
44+
45+
__all__ = [
46+
"AIRFLOW_V_3_0_PLUS",
47+
"BaseOperator",
48+
"BaseSensorOperator",
49+
"Context",
50+
]

0 commit comments

Comments
 (0)