From 67eb8c052d87825af6ea5811dbb5cb1951e564cc Mon Sep 17 00:00:00 2001 From: -LAN- Date: Sat, 24 Jan 2026 10:27:44 +0800 Subject: [PATCH] refactor: single-node workflow runner helpers (#31472) --- api/core/app/apps/workflow_app_runner.py | 46 ++++-------------------- api/models/workflow.py | 3 +- 2 files changed, 7 insertions(+), 42 deletions(-) diff --git a/api/core/app/apps/workflow_app_runner.py b/api/core/app/apps/workflow_app_runner.py index 2ca153f835..0e8f8b8dbf 100644 --- a/api/core/app/apps/workflow_app_runner.py +++ b/api/core/app/apps/workflow_app_runner.py @@ -166,18 +166,22 @@ class WorkflowBasedAppRunner: # Determine which type of single node execution and get graph/variable_pool if single_iteration_run: - graph, variable_pool = self._get_graph_and_variable_pool_of_single_iteration( + graph, variable_pool = self._get_graph_and_variable_pool_for_single_node_run( workflow=workflow, node_id=single_iteration_run.node_id, user_inputs=dict(single_iteration_run.inputs), graph_runtime_state=graph_runtime_state, + node_type_filter_key="iteration_id", + node_type_label="iteration", ) elif single_loop_run: - graph, variable_pool = self._get_graph_and_variable_pool_of_single_loop( + graph, variable_pool = self._get_graph_and_variable_pool_for_single_node_run( workflow=workflow, node_id=single_loop_run.node_id, user_inputs=dict(single_loop_run.inputs), graph_runtime_state=graph_runtime_state, + node_type_filter_key="loop_id", + node_type_label="loop", ) else: raise ValueError("Neither single_iteration_run nor single_loop_run is specified") @@ -314,44 +318,6 @@ class WorkflowBasedAppRunner: return graph, variable_pool - def _get_graph_and_variable_pool_of_single_iteration( - self, - workflow: Workflow, - node_id: str, - user_inputs: dict[str, Any], - graph_runtime_state: GraphRuntimeState, - ) -> tuple[Graph, VariablePool]: - """ - Get variable pool of single iteration - """ - return self._get_graph_and_variable_pool_for_single_node_run( - workflow=workflow, - node_id=node_id, - user_inputs=user_inputs, - graph_runtime_state=graph_runtime_state, - node_type_filter_key="iteration_id", - node_type_label="iteration", - ) - - def _get_graph_and_variable_pool_of_single_loop( - self, - workflow: Workflow, - node_id: str, - user_inputs: dict[str, Any], - graph_runtime_state: GraphRuntimeState, - ) -> tuple[Graph, VariablePool]: - """ - Get variable pool of single loop - """ - return self._get_graph_and_variable_pool_for_single_node_run( - workflow=workflow, - node_id=node_id, - user_inputs=user_inputs, - graph_runtime_state=graph_runtime_state, - node_type_filter_key="loop_id", - node_type_label="loop", - ) - def _handle_event(self, workflow_entry: WorkflowEntry, event: GraphEngineEvent): """ Handle event diff --git a/api/models/workflow.py b/api/models/workflow.py index 0efb3a4e44..df83228c2a 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -226,8 +226,7 @@ class Workflow(Base): # bug # # Currently, the following functions / methods would mutate the returned dict: # - # - `_get_graph_and_variable_pool_of_single_iteration`. - # - `_get_graph_and_variable_pool_of_single_loop`. + # - `_get_graph_and_variable_pool_for_single_node_run`. return json.loads(self.graph) if self.graph else {} def get_node_config_by_id(self, node_id: str) -> Mapping[str, Any]: