from typing import Any, Optional from core.workflow.entities.base_node_data_entities import BaseIterationNodeData, BaseIterationState class IterationNodeData(BaseIterationNodeData): """ Iteration Node Data. """ parent_loop_id: Optional[str] = None # redundant field, not used currently iterator_selector: list[str] # variable selector output_selector: list[str] # output selector class IterationState(BaseIterationState): """ Iteration State. """ outputs: list[Any] = None current_output: Optional[Any] = None class MetaData(BaseIterationState.MetaData): """ Data. """ iterator_length: int def get_last_output(self) -> Optional[Any]: """ Get last output. """ if self.outputs: return self.outputs[-1] return None def get_current_output(self) -> Optional[Any]: """ Get current output. """ return self.current_output