Fix: variable assigner issue. (#11351)

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
Kevin Hu
2025-11-19 09:49:40 +08:00
committed by GitHub
parent 50bc53a1f5
commit 023f509501
2 changed files with 14 additions and 9 deletions

View File

@ -301,7 +301,7 @@ class Canvas(Graph):
self.retrieval = [] self.retrieval = []
self.memory = [] self.memory = []
for k in self.globals.keys(): for k in self.globals.keys():
if k.startswith("sys."): if k.startswith("sys.") or k.startswith("env."):
if isinstance(self.globals[k], str): if isinstance(self.globals[k], str):
self.globals[k] = "" self.globals[k] = ""
elif isinstance(self.globals[k], int): elif isinstance(self.globals[k], int):

View File

@ -47,6 +47,8 @@ class VariableAssigner(ComponentBase,ABC):
return return
else: else:
for item in self._param.variables: for item in self._param.variables:
if any([not item.get("variable"), not item.get("operator"), not item.get("parameter")]):
assert "Variable is not complete."
variable=item["variable"] variable=item["variable"]
operator=item["operator"] operator=item["operator"]
parameter=item["parameter"] parameter=item["parameter"]
@ -122,7 +124,8 @@ class VariableAssigner(ComponentBase,ABC):
elif len(variable)!=0 and not isinstance(parameter,type(variable[0])): elif len(variable)!=0 and not isinstance(parameter,type(variable[0])):
return "ERROR:PARAMETER_NOT_LIST_ELEMENT_TYPE" return "ERROR:PARAMETER_NOT_LIST_ELEMENT_TYPE"
else: else:
return variable+parameter variable.append(parameter)
return variable
def _extend(self,variable,parameter): def _extend(self,variable,parameter):
parameter=self._canvas.get_variable_value(parameter) parameter=self._canvas.get_variable_value(parameter)
@ -153,7 +156,6 @@ class VariableAssigner(ComponentBase,ABC):
else: else:
return variable[:-1] return variable[:-1]
def is_number(self, value): def is_number(self, value):
if isinstance(value, bool): if isinstance(value, bool):
return False return False
@ -185,3 +187,6 @@ class VariableAssigner(ComponentBase,ABC):
return variable/parameter return variable/parameter
else: else:
return "ERROR:VARIABLE_NOT_NUMBER or PARAMETER_NOT_NUMBER" return "ERROR:VARIABLE_NOT_NUMBER or PARAMETER_NOT_NUMBER"
def thoughts(self) -> str:
return "Assign variables from canvas."