From 2305806c409f68fbc17cd817237396c52be42711 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 29 Feb 2024 18:36:42 -0300 Subject: [PATCH] Fix vertex filtering in layered topological sort --- src/backend/langflow/graph/graph/base.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/graph/graph/base.py b/src/backend/langflow/graph/graph/base.py index 1c1aa923b..453076e1b 100644 --- a/src/backend/langflow/graph/graph/base.py +++ b/src/backend/langflow/graph/graph/base.py @@ -631,7 +631,7 @@ class Graph: vertices: List[Vertex], ) -> List[List[str]]: """Performs a layered topological sort of the vertices in the graph.""" - vertices_ids = [vertex.id for vertex in vertices] + vertices_ids = {vertex.id for vertex in vertices} # Queue for vertices with no incoming edges queue = deque( vertex.id for vertex in vertices if self.in_degree_map[vertex.id] == 0 @@ -646,7 +646,10 @@ class Graph: vertex_id = queue.popleft() layers[current_layer].append(vertex_id) for neighbor in self.successor_map[vertex_id]: - # only vertices in `vertices` are considered + # only vertices in `vertices_ids` should be considered + # because vertices by have been filtered out + # in a previous step. All dependencies of theirs + # will be built automatically if required if neighbor not in vertices_ids: continue