This is an automated email from the ASF dual-hosted git repository.
kaxilnaik 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 f42ffbcf167 Fix backward compatibility for workloads TaskInstance
import (#62714)
f42ffbcf167 is described below
commit f42ffbcf1679cec11cac8068ea43820c23d4a6ba
Author: Kaxil Naik <[email protected]>
AuthorDate: Mon Mar 2 17:09:52 2026 +0000
Fix backward compatibility for workloads TaskInstance import (#62714)
Re-export TaskInstance from airflow.executors.workloads as an alias to
TaskInstanceDTO so integrations using the legacy import path continue to work.
Add a regression test that verifies the alias remains available.
---
.../src/airflow/executors/workloads/__init__.py | 15 +++++++++++++--
.../unit/executors/test_workloads.py} | 22 +++++++---------------
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/airflow-core/src/airflow/executors/workloads/__init__.py
b/airflow-core/src/airflow/executors/workloads/__init__.py
index dca4c991f63..462e38ad0aa 100644
--- a/airflow-core/src/airflow/executors/workloads/__init__.py
+++ b/airflow-core/src/airflow/executors/workloads/__init__.py
@@ -24,7 +24,7 @@ from pydantic import Field
from airflow.executors.workloads.base import BaseWorkload, BundleInfo
from airflow.executors.workloads.callback import CallbackFetchMethod,
ExecuteCallback
-from airflow.executors.workloads.task import ExecuteTask
+from airflow.executors.workloads.task import ExecuteTask, TaskInstanceDTO
from airflow.executors.workloads.trigger import RunTrigger
All = Annotated[
@@ -32,4 +32,15 @@ All = Annotated[
Field(discriminator="type"),
]
-__all__ = ["All", "BaseWorkload", "BundleInfo", "CallbackFetchMethod",
"ExecuteCallback", "ExecuteTask"]
+TaskInstance = TaskInstanceDTO
+
+__all__ = [
+ "All",
+ "BaseWorkload",
+ "BundleInfo",
+ "CallbackFetchMethod",
+ "ExecuteCallback",
+ "ExecuteTask",
+ "TaskInstance",
+ "TaskInstanceDTO",
+]
diff --git a/airflow-core/src/airflow/executors/workloads/__init__.py
b/airflow-core/tests/unit/executors/test_workloads.py
similarity index 58%
copy from airflow-core/src/airflow/executors/workloads/__init__.py
copy to airflow-core/tests/unit/executors/test_workloads.py
index dca4c991f63..8ca86f9704b 100644
--- a/airflow-core/src/airflow/executors/workloads/__init__.py
+++ b/airflow-core/tests/unit/executors/test_workloads.py
@@ -1,3 +1,4 @@
+#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -14,22 +15,13 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-"""Workload schemas for executor communication."""
-
from __future__ import annotations
-from typing import Annotated
-
-from pydantic import Field
-
-from airflow.executors.workloads.base import BaseWorkload, BundleInfo
-from airflow.executors.workloads.callback import CallbackFetchMethod,
ExecuteCallback
-from airflow.executors.workloads.task import ExecuteTask
-from airflow.executors.workloads.trigger import RunTrigger
+from airflow.executors import workloads
+from airflow.executors.workloads import TaskInstance, TaskInstanceDTO
-All = Annotated[
- ExecuteTask | ExecuteCallback | RunTrigger,
- Field(discriminator="type"),
-]
-__all__ = ["All", "BaseWorkload", "BundleInfo", "CallbackFetchMethod",
"ExecuteCallback", "ExecuteTask"]
+def test_task_instance_alias_keeps_backwards_compat():
+ assert TaskInstance is TaskInstanceDTO
+ assert workloads.TaskInstance is TaskInstanceDTO
+ assert workloads.TaskInstanceDTO is TaskInstanceDTO