[bug][python] Fix task switch error when default branch not defined last (#11606)
Co-authored-by: Jiajie Zhong <zhongjiajie955@gmail.com>
(cherry picked from commit 635fde1981)
This commit is contained in:
parent
59e745be0a
commit
1f88c5a637
|
|
@ -99,23 +99,22 @@ class SwitchCondition(Base):
|
|||
result = []
|
||||
num_branch_default = 0
|
||||
for condition in self.args:
|
||||
if isinstance(condition, SwitchBranch):
|
||||
if num_branch_default < 1:
|
||||
if isinstance(condition, Default):
|
||||
self._DEFINE_ATTR.add("next_node")
|
||||
setattr(self, "next_node", condition.next_node)
|
||||
num_branch_default += 1
|
||||
elif isinstance(condition, Branch):
|
||||
result.append(condition.get_define())
|
||||
else:
|
||||
raise PyDSParamException(
|
||||
"Task Switch's parameter only support exactly one default branch."
|
||||
)
|
||||
else:
|
||||
if not isinstance(condition, SwitchBranch):
|
||||
raise PyDSParamException(
|
||||
"Task Switch's parameter only support SwitchBranch but got %s.",
|
||||
type(condition),
|
||||
)
|
||||
# Default number branch checker
|
||||
if num_branch_default >= 1 and isinstance(condition, Default):
|
||||
raise PyDSParamException(
|
||||
"Task Switch's parameter only support exactly one default branch."
|
||||
)
|
||||
if isinstance(condition, Default):
|
||||
self._DEFINE_ATTR.add("next_node")
|
||||
setattr(self, "next_node", condition.next_node)
|
||||
num_branch_default += 1
|
||||
elif isinstance(condition, Branch):
|
||||
result.append(condition.get_define())
|
||||
# Handle switch default branch, default value is `""` if not provide.
|
||||
if num_branch_default == 0:
|
||||
self._DEFINE_ATTR.add("next_node")
|
||||
|
|
|
|||
Loading…
Reference in New Issue