From 1df68a546e33c58f969cc63316bc74b1d9b8de37 Mon Sep 17 00:00:00 2001 From: jyong Date: Sat, 16 Mar 2024 01:15:40 +0800 Subject: [PATCH] variable assigner node --- .../variable_assigner_node.py | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py index c6d11926ed..b1a84b2603 100644 --- a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py +++ b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py @@ -1,14 +1,33 @@ from typing import cast from core.workflow.entities.base_node_data_entities import BaseNodeData -from core.workflow.entities.node_entities import NodeRunResult +from core.workflow.entities.node_entities import NodeRunResult, NodeType from core.workflow.entities.variable_pool import VariablePool from core.workflow.nodes.base_node import BaseNode +from core.workflow.nodes.variable_assigner.entities import VariableAssignerNodeData +from models.workflow import WorkflowNodeExecutionStatus class VariableAssignerNode(BaseNode): + _node_data_cls = VariableAssignerNodeData + _node_type = NodeType.VARIABLE_ASSIGNER + def _run(self, variable_pool: VariablePool) -> NodeRunResult: - pass + node_data: VariableAssignerNodeData = cast(self._node_data_cls, self.node_data) + value = variable_pool.get_variable_value(node_data.variables) + variable_pool.append_variable( + node_id=self.node_id, + variable_key_list=node_data.variables, + value=value + ) + outputs = { + "output": value + } + + return NodeRunResult( + status=WorkflowNodeExecutionStatus.SUCCEEDED, + outputs=outputs, + ) @classmethod def _extract_variable_selector_to_variable_mapping(cls, node_data: BaseNodeData) -> dict[str, list[str]]: