variable assigner node

This commit is contained in:
jyong 2024-03-16 01:15:40 +08:00
parent 5013ea09d5
commit 1df68a546e
1 changed files with 21 additions and 2 deletions

View File

@ -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]]: