From b865c4f9174c0f792ef3d77f6cbb4860d09b62b9 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 30 Aug 2023 14:26:18 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(base.py):=20handle=20case=20?= =?UTF-8?q?when=20edge=20data=20is=20empty=20by=20logging=20an=20error=20a?= =?UTF-8?q?nd=20setting=20default=20values=20for=20source=5Fhandle,=20targ?= =?UTF-8?q?et=5Fhandle,=20and=20target=5Fparam=20=E2=9C=A8=20feat(base.py)?= =?UTF-8?q?:=20extract=20target=5Fparam=20from=20target=5Fhandle=20by=20sp?= =?UTF-8?q?litting=20on=20"|"=20character=20to=20improve=20readability=20a?= =?UTF-8?q?nd=20maintainability?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/graph/edge/base.py | 26 +++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/backend/langflow/graph/edge/base.py b/src/backend/langflow/graph/edge/base.py index 27d25f928..c5b8ca195 100644 --- a/src/backend/langflow/graph/edge/base.py +++ b/src/backend/langflow/graph/edge/base.py @@ -28,16 +28,22 @@ class Edge: def __init__(self, source: "Vertex", target: "Vertex", edge: dict): self.source: "Vertex" = source self.target: "Vertex" = target - data = edge.get("data", {}) - if not data: - raise ValueError("Edge data is empty") - self._source_handle = data.get("sourceHandle", {}) - self._target_handle = data.get("targetHandle", {}) - self.source_handle: SourceHandle = SourceHandle(**self._source_handle) - self.target_handle: TargetHandle = TargetHandle(**self._target_handle) - self.target_param = self.target_handle.fieldName - # validate handles - self.validate_handles() + if data := edge.get("data", {}): + self._source_handle = data.get("sourceHandle", {}) + self._target_handle = data.get("targetHandle", {}) + self.source_handle: SourceHandle = SourceHandle(**self._source_handle) + self.target_handle: TargetHandle = TargetHandle(**self._target_handle) + self.target_param = self.target_handle.fieldName + # validate handles + self.validate_handles() + else: + # Logging here because this is a breaking change + logger.error("Edge data is empty") + self.source_handle = edge.get("sourceHandle", "") + self.target_handle = edge.get("targetHandle", "") + # 'BaseLoader;BaseOutputParser|documents|PromptTemplate-zmTlD' + # target_param is documents + self.target_param = self.target_handle.split("|")[1] # Validate in __init__ to fail fast self.validate_edge()