@@ -201,6 +201,9 @@ def _label_elements(
201201 new_end_nodes : Dict [Edge , Tuple [Node , Node ]],
202202 node_label_assignments : Dict [Node , Label ],
203203 ) -> Tuple [Dict [Node , Label ], Dict [Edge , Label ], Dict [Signal , Label ]]:
204+ if not new_end_nodes and not node_label_assignments :
205+ raise ValueError ("No end nodes but also nothing labeled. Split not possible" )
206+
204207 node_labels : Dict [Node , Label ] = {}
205208 edge_labels : Dict [Edge , Label ] = {}
206209 signal_labels : Dict [Signal , Label ] = {}
@@ -226,23 +229,12 @@ def _dfs(_start_node: Node, _label):
226229 node_list .extend (cur_node .connected_nodes )
227230 visited .add (cur_node )
228231
229- for node , label in node_label_assignments .items ():
230- _dfs (node , label )
231-
232232 def _get_any_unlabeled_end_node_pair ():
233233 for pair in new_end_nodes .values ():
234234 if pair [0 ] not in node_labels and pair [1 ] not in node_labels :
235235 return pair
236236 return None
237237
238- if not node_labels :
239- # Nothing labeled so far, start with any pair
240- if not new_end_nodes :
241- raise ValueError ("No end nodes but also nothing labeled. Split not possible" )
242- any_end_node_pair = _get_any_unlabeled_end_node_pair ()
243- _dfs (any_end_node_pair [0 ], Label .A_Topology )
244- _dfs (any_end_node_pair [1 ], Label .B_Topology )
245-
246238 def _get_next_end_node_pair ():
247239 for pair in new_end_nodes .values ():
248240 _node_a = pair [0 ]
@@ -253,6 +245,15 @@ def _get_next_end_node_pair():
253245 return pair
254246 return _get_any_unlabeled_end_node_pair ()
255247
248+ if node_label_assignments :
249+ for node , label in node_label_assignments .items ():
250+ _dfs (node , label )
251+ else :
252+ # Nothing labeled so far, start with any pair
253+ any_end_node_pair = _get_any_unlabeled_end_node_pair ()
254+ _dfs (any_end_node_pair [0 ], Label .A_Topology )
255+ _dfs (any_end_node_pair [1 ], Label .B_Topology )
256+
256257 next_pair = _get_next_end_node_pair ()
257258 while next_pair is not None :
258259 node_a = next_pair [0 ]
0 commit comments