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"]

Reply via email to