@@ -397,14 +397,11 @@ def identify_and_remove_orphans(
397397 def process_node (
398398 node : HierarchyNode ,
399399 parent_entity_name : Optional [EntityName ],
400- orph_messages : Messages | None = None ,
401- ):
400+ processed : bool = False ,
401+ ) -> bool :
402402 """Recursive helper to process a node and its children."""
403403 current_entity_name = node .entity_name
404404
405- if orph_messages is None :
406- orph_messages = []
407-
408405 if parent_entity_name is not None :
409406 self .logger .info (f"Identifying orphans in { current_entity_name } " )
410407
@@ -427,6 +424,7 @@ def process_node(
427424 self .logger .info (
428425 f"Removing records with missing parent from { current_entity_name } "
429426 )
427+ processed = True
430428 location = list (node .join_fields .values ())[0 ]
431429 with BackgroundMessageWriter (
432430 working_directory = working_directory ,
@@ -466,16 +464,17 @@ def process_node(
466464
467465 if node .children :
468466 for child_node in node .children :
469- process_node (child_node , current_entity_name , orph_messages )
467+ processed = process_node (child_node , current_entity_name , processed )
468+
469+ return processed
470470
471471 processed = False
472472
473473 for root_node in entity_hierarchy .entity_trees .values ():
474- process_node (root_node , parent_entity_name = None )
474+ processed = process_node (root_node , parent_entity_name = None , processed = processed )
475475
476476 _orph_rel = entities .get (ORPHANED_RECORD_ENTITY_NAME )
477477 if _orph_rel is not None :
478- processed = True
479478 del entities [ORPHANED_RECORD_ENTITY_NAME ]
480479
481480 entities .update (entities )
@@ -496,8 +495,8 @@ def identify_and_remove_missing_mandatory_groups(
496495 def process_node (
497496 node : HierarchyNode ,
498497 parent_entity_name : Optional [EntityName ],
499- processed : Optional [ bool ] ,
500- ):
498+ processed : bool = False ,
499+ ) -> bool :
501500 """Recursive helper to process a node and its children."""
502501 current_entity_name = node .entity_name
503502
@@ -548,12 +547,14 @@ def process_node(
548547
549548 if node .children :
550549 for child_node in node .children :
551- process_node (child_node , current_entity_name , processed )
550+ processed = process_node (child_node , current_entity_name , processed )
551+
552+ return processed
552553
553554 processed = False
554555
555556 for root_node in entity_hierarchy .entity_trees .values ():
556- process_node (root_node , parent_entity_name = None , processed = processed )
557+ processed = process_node (root_node , parent_entity_name = None , processed = processed )
557558
558559 entities .update (entities )
559560
0 commit comments