@ -639,11 +639,8 @@ class Graph(BaseModel):
if start_node_id not in reverse_edge_mapping :
if start_node_id not in reverse_edge_mapping :
return False
return False
all_routes_node_ids = set ( )
parallel_start_node_ids : dict [ str , list [ str ] ] = { }
parallel_start_node_ids : dict [ str , list [ str ] ] = { }
for branch_node_id , node_ids in routes_node_ids . items ( ) :
for branch_node_id in routes_node_ids . items ( ) :
all_routes_node_ids . update ( node_ids )
if branch_node_id in reverse_edge_mapping :
if branch_node_id in reverse_edge_mapping :
for graph_edge in reverse_edge_mapping [ branch_node_id ] :
for graph_edge in reverse_edge_mapping [ branch_node_id ] :
if graph_edge . source_node_id not in parallel_start_node_ids :
if graph_edge . source_node_id not in parallel_start_node_ids :
@ -651,8 +648,9 @@ class Graph(BaseModel):
parallel_start_node_ids [ graph_edge . source_node_id ] . append ( branch_node_id )
parallel_start_node_ids [ graph_edge . source_node_id ] . append ( branch_node_id )
expected_branch_set = set ( routes_node_ids . keys ( ) )
for _ , branch_node_ids in parallel_start_node_ids . items ( ) :
for _ , branch_node_ids in parallel_start_node_ids . items ( ) :
if set ( branch_node_ids ) == set ( routes_node_ids . keys ( ) ) :
if set ( branch_node_ids ) == expected_branch_set :
return True
return True
return False
return False