Skip to content

Commit eb6f2c3

Browse files
authored
Migrate Docker provider to common.compat (apache#57117)
* Migrate Docker provider to common.compat * chore: keep BaseOperator in version compat
1 parent d9dd661 commit eb6f2c3

File tree

6 files changed

+6
-17
lines changed

6 files changed

+6
-17
lines changed

providers/docker/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ requires-python = ">=3.10"
5858
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
5959
dependencies = [
6060
"apache-airflow>=2.10.0",
61+
"apache-airflow-providers-common-compat>=1.8.0",
6162
"docker>=7.1.0",
6263
"python-dotenv>=0.21.0",
6364
]

providers/docker/src/airflow/providers/docker/decorators/docker.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,9 @@
3535
if TYPE_CHECKING:
3636
from typing import Literal
3737

38+
from airflow.providers.common.compat.sdk import Context
3839
from airflow.sdk.bases.decorator import TaskDecorator
3940

40-
if AIRFLOW_V_3_0_PLUS:
41-
from airflow.sdk.definitions.context import Context
42-
else:
43-
# TODO: Remove once provider drops support for Airflow 2
44-
from airflow.utils.context import Context
45-
4641
Serializer = Literal["pickle", "dill", "cloudpickle"]
4742

4843
try:

providers/docker/src/airflow/providers/docker/hooks/docker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
from docker.errors import APIError, DockerException
2828

2929
from airflow.exceptions import AirflowException, AirflowNotFoundException
30-
from airflow.providers.docker.version_compat import BaseHook
30+
from airflow.providers.common.compat.sdk import BaseHook
3131

3232
if TYPE_CHECKING:
33-
from airflow.models import Connection
33+
from airflow.providers.common.compat.sdk import Connection
3434

3535

3636
class DockerHook(BaseHook):

providers/docker/src/airflow/providers/docker/operators/docker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
from docker import APIClient
4646
from docker.types import DeviceRequest
4747

48-
from airflow.sdk.definitions.context import Context
48+
from airflow.providers.common.compat.sdk import Context
4949
from airflow.sdk.types import Logger
5050

5151

providers/docker/src/airflow/providers/docker/operators/docker_swarm.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@
3232
from airflow.utils.strings import get_random_string
3333

3434
if TYPE_CHECKING:
35-
try:
36-
from airflow.sdk.definitions.context import Context
37-
except ImportError:
38-
# TODO: Remove once provider drops support for Airflow 2
39-
from airflow.utils.context import Context
35+
from airflow.providers.common.compat.sdk import Context
4036

4137

4238
class DockerSwarmOperator(DockerOperator):

providers/docker/src/airflow/providers/docker/version_compat.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,13 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
4040
# This is needed for DecoratedOperator compatibility
4141
if AIRFLOW_V_3_1_PLUS:
4242
from airflow.sdk import (
43-
BaseHook,
4443
BaseOperator,
4544
)
4645
else:
47-
from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
4846
from airflow.models import BaseOperator
4947

5048
__all__ = [
5149
"AIRFLOW_V_3_0_PLUS",
5250
"AIRFLOW_V_3_1_PLUS",
53-
"BaseHook",
5451
"BaseOperator",
5552
]

0 commit comments

Comments
 (0)