diff --git a/wizard-work/beam/toposort/toposort.py b/wizard-work/beam/toposort/toposort.py index de77f22..4da0d8e 100644 --- a/wizard-work/beam/toposort/toposort.py +++ b/wizard-work/beam/toposort/toposort.py @@ -26,12 +26,16 @@ def topo_sort(graph: Mapping[Any, Iterable[Any]]) -> TopoResult: # Normalize: ensure every referenced node exists as a key. nodes: set[Any] = set(graph.keys()) for deps in graph.values(): + if deps is None: + continue for d in deps: nodes.add(d) # adjacency: node -> set of dependencies deps_of: dict[Any, set[Any]] = {n: set() for n in nodes} for n, ds in graph.items(): + if ds is None: + ds = [] for d in ds: if d == n: # self-loop is a cycle of length 1