Skip to content

Commit eed97a7

Browse files
authored
Make sure every node is in the values returned from links_and_reverse_links_dict (#827)
Because we're not returning defaultdicts from that function (it's cached), it's a bit annoying for consumers as they have to `.get` everything out of it. By ensuring that every node is present in the returned value, consumers can safely use `[]` again.
1 parent 03f2acd commit eed97a7

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/taskgraph/graph.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def _visit(self, reverse):
8383
dependencies = reverse_links if reverse else forward_links
8484
dependents = forward_links if reverse else reverse_links
8585

86-
indegree = {node: len(dependencies.get(node, ())) for node in self.nodes}
86+
indegree = {node: len(dependencies[node]) for node in self.nodes}
8787

8888
queue = collections.deque(
8989
node for node, degree in indegree.items() if degree == 0
@@ -93,7 +93,7 @@ def _visit(self, reverse):
9393
node = queue.popleft()
9494
yield node
9595

96-
for dependent in dependents.get(node, ()):
96+
for dependent in dependents[node]:
9797
indegree[dependent] -= 1
9898
if indegree[dependent] == 0:
9999
queue.append(dependent)
@@ -128,8 +128,8 @@ def links_and_reverse_links_dict(self):
128128
`reverse_links_dict` counterparts to avoid consumers modifying the
129129
cached value by mistake.
130130
"""
131-
forward = collections.defaultdict(set)
132-
reverse = collections.defaultdict(set)
131+
forward = {node: set() for node in self.nodes}
132+
reverse = {node: set() for node in self.nodes}
133133
for left, right, _ in self.edges:
134134
forward[left].add(right)
135135
reverse[right].add(left)

0 commit comments

Comments
 (0)