소스 검색

fix: update iteration node to use correct variable segment types (#25315)

tags/2.0.0-beta.2^2
-LAN- 1 개월 전
부모
커밋
7e629fd783
No account linked to committer's email address
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3
    3
      api/core/workflow/nodes/iteration/iteration_node.py

+ 3
- 3
api/core/workflow/nodes/iteration/iteration_node.py 파일 보기

from flask import Flask, current_app from flask import Flask, current_app


from configs import dify_config from configs import dify_config
from core.variables import ArrayVariable, IntegerVariable, NoneVariable
from core.variables import IntegerVariable, NoneSegment
from core.variables.segments import ArrayAnySegment, ArraySegment from core.variables.segments import ArrayAnySegment, ArraySegment
from core.workflow.entities.node_entities import ( from core.workflow.entities.node_entities import (
NodeRunResult, NodeRunResult,
if not variable: if not variable:
raise IteratorVariableNotFoundError(f"iterator variable {self._node_data.iterator_selector} not found") raise IteratorVariableNotFoundError(f"iterator variable {self._node_data.iterator_selector} not found")


if not isinstance(variable, ArrayVariable) and not isinstance(variable, NoneVariable):
if not isinstance(variable, ArraySegment) and not isinstance(variable, NoneSegment):
raise InvalidIteratorValueError(f"invalid iterator value: {variable}, please provide a list.") raise InvalidIteratorValueError(f"invalid iterator value: {variable}, please provide a list.")


if isinstance(variable, NoneVariable) or len(variable.value) == 0:
if isinstance(variable, NoneSegment) or len(variable.value) == 0:
# Try our best to preserve the type informat. # Try our best to preserve the type informat.
if isinstance(variable, ArraySegment): if isinstance(variable, ArraySegment):
output = variable.model_copy(update={"value": []}) output = variable.model_copy(update={"value": []})

Loading…
취소
저장