This is an automated email from the ASF dual-hosted git repository.
phanikumv 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 45be7f823f3 feat(dag_dependency): add unresolved asset ref node
(#49231)
45be7f823f3 is described below
commit 45be7f823f349045deb4d12a27028ed3c6718e62
Author: Wei Lee <[email protected]>
AuthorDate: Tue Apr 15 00:22:29 2025 +0800
feat(dag_dependency): add unresolved asset ref node (#49231)
---
airflow-core/src/airflow/models/serialized_dag.py | 9 +++++++++
airflow-core/tests/unit/models/test_serialized_dag.py | 9 ++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/airflow-core/src/airflow/models/serialized_dag.py
b/airflow-core/src/airflow/models/serialized_dag.py
index dc45ffc8546..b4d8088dede 100644
--- a/airflow-core/src/airflow/models/serialized_dag.py
+++ b/airflow-core/src/airflow/models/serialized_dag.py
@@ -198,6 +198,15 @@ class _DagDependenciesResolver:
dependency_type="asset",
dependency_id=str(asset_id),
)
+ else:
+ yield DagDependency(
+ source=dep_data["source"],
+ target=dep_data["target"],
+ # handle the case that serialized_dag does not have label
column (e.g., from 2.x)
+ label=dep_data.get("label", dep_id),
+ dependency_type=dep_data["dependency_type"],
+ dependency_id=dep_id,
+ )
def resolve_asset_name_ref_dag_dep(self, dep_data) ->
Iterator[DagDependency]:
return self.resolve_asset_ref_dag_dep(dep_data=dep_data,
ref_type="asset-name-ref")
diff --git a/airflow-core/tests/unit/models/test_serialized_dag.py
b/airflow-core/tests/unit/models/test_serialized_dag.py
index 95137ce0315..e361d7e050f 100644
--- a/airflow-core/tests/unit/models/test_serialized_dag.py
+++ b/airflow-core/tests/unit/models/test_serialized_dag.py
@@ -418,7 +418,14 @@ class TestSerializedDagModel:
label=asset_name,
dependency_type="asset",
dependency_id=f"{asset_id}",
- )
+ ),
+ DagDependency(
+ source="asset-uri-ref",
+ target="test_get_dependencies_with_asset_ref_example",
+ label="test://no-such-asset/",
+ dependency_type="asset-uri-ref",
+ dependency_id="test://no-such-asset/",
+ ),
]
}