From bbbc978b1f97b52b4b64e74ebb7d236ddaf83a2c Mon Sep 17 00:00:00 2001 From: HanYanbo Date: Thu, 23 Jan 2025 17:23:50 +0800 Subject: [PATCH] fix: continue_on_success_ratio without slice raise error --- src/dflow/step.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/dflow/step.py b/src/dflow/step.py index 5f0318eb..8b7b00d5 100644 --- a/src/dflow/step.py +++ b/src/dflow/step.py @@ -722,7 +722,8 @@ def merge_output_artifact(art, parent, layer=0): self.template.set_slices(self.template.slices) self.with_param = argo_range(if_expression( "%s %% %s > 0" % (nslices, group_size), - "%s/%s + 1" % (nslices, group_size), + "(%s - %s %% %s) / %s + 1" % (nslices, + nslices, group_size, group_size), "%s/%s" % (nslices, group_size))) elif self.with_param is not None: self.template.inputs.parameters["dflow_with_param"] = \ @@ -745,7 +746,8 @@ def merge_output_artifact(art, parent, layer=0): self.template.set_slices(self.template.slices) self.with_param = argo_range(if_expression( "%s %% %s > 0" % (nslices, group_size), - "%s/%s + 1" % (nslices, group_size), + "(%s - %s %% %s) / %s + 1" % (nslices, + nslices, group_size, group_size), "%s/%s" % (nslices, group_size))) if self.with_sequence is not None: self.template.inputs.parameters["dflow_sequence_start"] = \ @@ -799,7 +801,8 @@ def merge_output_artifact(art, parent, layer=0): self.with_sequence = argo_sequence( count=if_expression( "%s %% %s > 0" % (nslices, group_size), - "%s/%s + 1" % (nslices, group_size), + "(%s - %s %% %s) / %s + 1" % (nslices, + nslices, group_size, group_size), "%s/%s" % (nslices, group_size)), format=format) self.inputs.parameters["dflow_nslices"] = InputParameter( @@ -932,6 +935,7 @@ def add_success_tag(templ): } ) elif self.continue_on_success_ratio is not None: + total = 1 if "dflow_nslices" in self.inputs.parameters: total = self.inputs.parameters["dflow_nslices"].value elif self.with_param is not None: