Coverage for src/loman/graph_utils.py: 100%
9 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-21 05:36 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-21 05:36 +0000
1"""Graph utility functions for computation graph operations."""
3import functools
5from loman.util import apply_n
8def contract_node_one(g, n):
9 """Remove a node from graph and connect its predecessors to its successors."""
10 for p in g.predecessors(n):
11 for s in g.successors(n):
12 g.add_edge(p, s)
13 g.remove_node(n)
16def contract_node(g, ns):
17 """Remove multiple nodes from graph and connect their predecessors to successors."""
18 apply_n(functools.partial(contract_node_one, g), ns)