fix(runnable_vertices_manager.py): add recursive function to find predecessors (#2593)

fix(runnable_vertices_manager.py): add recursive function to find runnable predecessors
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-07-08 19:14:36 -03:00 committed by GitHub
commit 4c43b4cc82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -60,11 +60,20 @@ class RunnableVerticesManager:
runnable_vertices = []
visited = set()
def find_runnable_predecessors(predecessor_id: str):
if predecessor_id in visited:
return
visited.add(predecessor_id)
if self.is_vertex_runnable(predecessor_id, inactivated_vertices):
runnable_vertices.append(predecessor_id)
else:
for pred_pred_id in self.run_predecessors.get(predecessor_id, []):
find_runnable_predecessors(pred_pred_id)
for successor_id in self.run_map.get(vertex_id, []):
for predecessor_id in self.run_predecessors.get(successor_id, []):
if predecessor_id not in visited and self.is_vertex_runnable(predecessor_id, inactivated_vertices):
runnable_vertices.append(predecessor_id)
visited.add(predecessor_id)
find_runnable_predecessors(predecessor_id)
return runnable_vertices
def remove_from_predecessors(self, vertex_id: str):