This is an automated email from the ASF dual-hosted git repository.
weilee pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 570b24b9930 Remove airflow core dependency for typing utilities in
task sdk (#58223)
570b24b9930 is described below
commit 570b24b99303e3d65ae2b3dfb2d2dbdb62f71efb
Author: Amogh Desai <[email protected]>
AuthorDate: Mon Nov 17 14:58:54 2025 +0530
Remove airflow core dependency for typing utilities in task sdk (#58223)
---
task-sdk/src/airflow/sdk/bases/operator.py | 2 +-
task-sdk/src/airflow/sdk/definitions/asset/decorators.py | 2 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 2 +-
task-sdk/src/airflow/sdk/definitions/decorators/__init__.pyi | 3 +--
task-sdk/src/airflow/sdk/execution_time/context.py | 2 +-
task-sdk/src/airflow/sdk/execution_time/supervisor.py | 2 +-
6 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/task-sdk/src/airflow/sdk/bases/operator.py
b/task-sdk/src/airflow/sdk/bases/operator.py
index 1ef42cb4991..489cd094209 100644
--- a/task-sdk/src/airflow/sdk/bases/operator.py
+++ b/task-sdk/src/airflow/sdk/bases/operator.py
@@ -88,6 +88,7 @@ if TYPE_CHECKING:
from types import ClassMethodDescriptorType
import jinja2
+ from typing_extensions import Self
from airflow.sdk.bases.operatorlink import BaseOperatorLink
from airflow.sdk.definitions.context import Context
@@ -98,7 +99,6 @@ if TYPE_CHECKING:
from airflow.serialization.enums import DagAttributeTypes
from airflow.task.priority_strategy import PriorityWeightStrategy
from airflow.triggers.base import BaseTrigger, StartTriggerArgs
- from airflow.typing_compat import Self
TaskPreExecuteHook = Callable[[Context], None]
TaskPostExecuteHook = Callable[[Context, Any], None]
diff --git a/task-sdk/src/airflow/sdk/definitions/asset/decorators.py
b/task-sdk/src/airflow/sdk/definitions/asset/decorators.py
index eab493f5eaa..4cdf5313c88 100644
--- a/task-sdk/src/airflow/sdk/definitions/asset/decorators.py
+++ b/task-sdk/src/airflow/sdk/definitions/asset/decorators.py
@@ -30,6 +30,7 @@ if TYPE_CHECKING:
from collections.abc import Callable, Collection, Iterator, Mapping
from pydantic.types import JsonValue
+ from typing_extensions import Self
from airflow.sdk import DAG, AssetAlias, ObjectStoragePath
from airflow.sdk.bases.decorator import _TaskDecorator
@@ -38,7 +39,6 @@ if TYPE_CHECKING:
from airflow.sdk.definitions.param import ParamsDict
from airflow.serialization.dag_dependency import DagDependency
from airflow.triggers.base import BaseTrigger
- from airflow.typing_compat import Self
def _validate_asset_function_arguments(f: Callable) -> None:
diff --git a/task-sdk/src/airflow/sdk/definitions/dag.py
b/task-sdk/src/airflow/sdk/definitions/dag.py
index 6fc32c188b8..b9aa67f93ed 100644
--- a/task-sdk/src/airflow/sdk/definitions/dag.py
+++ b/task-sdk/src/airflow/sdk/definitions/dag.py
@@ -65,6 +65,7 @@ if TYPE_CHECKING:
from typing import TypeAlias
from pendulum.tz.timezone import FixedTimezone, Timezone
+ from typing_extensions import Self
from airflow.models.taskinstance import TaskInstance as
SchedulerTaskInstance
from airflow.sdk.definitions.decorators import TaskDecoratorCollection
@@ -72,7 +73,6 @@ if TYPE_CHECKING:
from airflow.sdk.definitions.mappedoperator import MappedOperator
from airflow.sdk.definitions.taskgroup import TaskGroup
from airflow.sdk.execution_time.supervisor import TaskRunResult
- from airflow.typing_compat import Self
Operator: TypeAlias = BaseOperator | MappedOperator
diff --git a/task-sdk/src/airflow/sdk/definitions/decorators/__init__.pyi
b/task-sdk/src/airflow/sdk/definitions/decorators/__init__.pyi
index c9a6d9956bb..8e84b33a421 100644
--- a/task-sdk/src/airflow/sdk/definitions/decorators/__init__.pyi
+++ b/task-sdk/src/airflow/sdk/definitions/decorators/__init__.pyi
@@ -22,7 +22,7 @@ from __future__ import annotations
from collections.abc import Callable, Collection, Container, Iterable, Mapping
from datetime import timedelta
-from typing import Any, TypeVar, overload
+from typing import Any, Literal, TypeVar, overload
from docker.types import Mount
from kubernetes.client import models as k8s
@@ -32,7 +32,6 @@ from airflow.sdk.bases.decorator import FParams, FReturn,
Task, TaskDecorator, _
from airflow.sdk.definitions.dag import dag
from airflow.sdk.definitions.decorators.condition import AnyConditionFunc
from airflow.sdk.definitions.decorators.task_group import task_group
-from airflow.typing_compat import Literal
# Please keep this in sync with __init__.py's __all__.
__all__ = [
diff --git a/task-sdk/src/airflow/sdk/execution_time/context.py
b/task-sdk/src/airflow/sdk/execution_time/context.py
index e83cc990e4e..f5f4aed589e 100644
--- a/task-sdk/src/airflow/sdk/execution_time/context.py
+++ b/task-sdk/src/airflow/sdk/execution_time/context.py
@@ -47,6 +47,7 @@ if TYPE_CHECKING:
from uuid import UUID
from pydantic.types import JsonValue
+ from typing_extensions import Self
from airflow.sdk import Variable
from airflow.sdk.bases.operator import BaseOperator
@@ -64,7 +65,6 @@ if TYPE_CHECKING:
VariableResult,
)
from airflow.sdk.types import OutletEventAccessorsProtocol
- from airflow.typing_compat import Self
DEFAULT_FORMAT_PREFIX = "airflow.ctx."
diff --git a/task-sdk/src/airflow/sdk/execution_time/supervisor.py
b/task-sdk/src/airflow/sdk/execution_time/supervisor.py
index 748cd181878..077c60c859b 100644
--- a/task-sdk/src/airflow/sdk/execution_time/supervisor.py
+++ b/task-sdk/src/airflow/sdk/execution_time/supervisor.py
@@ -133,12 +133,12 @@ except ImportError:
if TYPE_CHECKING:
from structlog.typing import FilteringBoundLogger, WrappedLogger
+ from typing_extensions import Self
from airflow.executors.workloads import BundleInfo
from airflow.sdk.definitions.connection import Connection
from airflow.sdk.types import RuntimeTaskInstanceProtocol as RuntimeTI
from airflow.secrets import BaseSecretsBackend
- from airflow.typing_compat import Self
__all__ = ["ActivitySubprocess", "WatchedSubprocess", "supervise"]