Refactor Vertex class to handle code parsing and string unescaping

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-02-21 17:39:54 -03:00
commit aca19ef54f

View file

@ -244,7 +244,7 @@ class Vertex:
for key, value in self.data["node"]["template"].items()
if isinstance(value, dict)
}
params = self.params.copy() if self.params else {}
params = {}
for edge in self.edges:
if not hasattr(edge, "target_param"):
@ -287,8 +287,7 @@ class Vertex:
if value.get("type") == "code":
try:
params[key] = ast.literal_eval(val) if val else None
except Exception as exc:
logger.debug(f"Error parsing code: {exc}")
except Exception:
params[key] = val
elif value.get("type") in ["dict", "NestedDict"]:
# When dict comes from the frontend it comes as a
@ -312,6 +311,10 @@ class Vertex:
params[key] = float(val)
except ValueError:
params[key] = val
elif value.get("type") == "str" and val is not None:
# val may contain escaped \n, \t, etc.
# so we need to unescape it
params[key] = val.encode().decode("unicode_escape")
elif val is not None and val != "":
params[key] = val