1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Make dependency validation linear

This commit is contained in:
Andraxion 2026-07-29 03:45:09 -04:00
parent 7e0eff347c
commit 3bee200234
4 changed files with 152 additions and 18 deletions

View file

@ -479,14 +479,12 @@ def validate_graph(nodes: tuple[Node, ...], edges: tuple[Edge, ...]) -> None:
if missing:
raise DocForgeError("broken_edge", "Relationships target missing nodes", targets=missing)
dependencies = {
node_id: sorted(
edge.target_id
for edge in edges
if edge.source_id == node_id and edge.relation == "depends_on"
)
for node_id in sorted(node_ids)
}
dependencies: dict[str, list[str]] = {node_id: [] for node_id in node_ids}
for edge in edges:
if edge.relation == "depends_on":
dependencies[edge.source_id].append(edge.target_id)
for targets in dependencies.values():
targets.sort()
visiting: set[str] = set()
visited: set[str] = set()