@@ -301,7 +301,7 @@ def unique_nodes(
301
301
302
302
def iter_nodes_topo (
303
303
self : BigFrameNode ,
304
- ) -> Generator [Tuple [ BigFrameNode , Sequence [ BigFrameNode ]] , None , None ]:
304
+ ) -> Generator [BigFrameNode , None , None ]:
305
305
"""Returns nodes in reverse topological order, using Kahn's algorithm."""
306
306
child_to_parents : Dict [
307
307
BigFrameNode , list [BigFrameNode ]
@@ -319,8 +319,8 @@ def iter_nodes_topo(
319
319
320
320
while queue :
321
321
item = queue .popleft ()
322
+ yield item
322
323
parents = child_to_parents .get (item , [])
323
- yield item , parents
324
324
for parent in parents :
325
325
out_degree [parent ] -= 1
326
326
if out_degree [parent ] == 0 :
@@ -364,7 +364,7 @@ def bottom_up(
364
364
Returns the transformed root node.
365
365
"""
366
366
results : dict [BigFrameNode , BigFrameNode ] = {}
367
- for node , _ in list (self .iter_nodes_topo ()):
367
+ for node in list (self .iter_nodes_topo ()):
368
368
# child nodes have already been transformed
369
369
result = node .transform_children (lambda x : results [x ])
370
370
result = transform (result )
@@ -375,7 +375,7 @@ def bottom_up(
375
375
def reduce_up (self , reduction : Callable [[BigFrameNode , Tuple [T , ...]], T ]) -> T :
376
376
"""Apply a bottom-up reduction to the tree."""
377
377
results : dict [BigFrameNode , T ] = {}
378
- for node , _ in list (self .iter_nodes_topo ()):
378
+ for node in list (self .iter_nodes_topo ()):
379
379
# child nodes have already been transformed
380
380
child_results = tuple (results [child ] for child in node .child_nodes )
381
381
result = reduction (node , child_results )
0 commit comments