|
34 | 34 | except ImportError: |
35 | 35 | has_numpy = False |
36 | 36 |
|
37 | | - |
38 | 37 | logger = logging.getLogger(__name__) |
39 | 38 |
|
40 | 39 |
|
@@ -3605,3 +3604,55 @@ def set_analysis_params(self, value=""): |
3605 | 3604 | d["stats_params"] = {} |
3606 | 3605 | d["stats_params"]["analysis_parameters"] = json.dumps(value) |
3607 | 3606 | self.params = json.dumps(d) |
| 3607 | + |
| 3608 | + |
| 3609 | +class iteratorGeneratorREST(GeneratorREST): |
| 3610 | + """Representation of Iterator Generator Template.""" |
| 3611 | + |
| 3612 | + def __init__(self): |
| 3613 | + super().__init__() |
| 3614 | + |
| 3615 | + def get_iteration_tags(self): |
| 3616 | + params = json.loads(self.params) |
| 3617 | + return [params.get("tag", ""), params.get("secondary_tag", "")] |
| 3618 | + |
| 3619 | + def set_iteration_tags(self, value=None): |
| 3620 | + if value is None: |
| 3621 | + value = ["", ""] |
| 3622 | + if not isinstance(value, list): |
| 3623 | + raise ValueError("Error: input needs to be a list") |
| 3624 | + if len(value) != 2: |
| 3625 | + raise ValueError( |
| 3626 | + "Error: input list needs to contain 2 elements: iteration tag and secondary sorting tag" |
| 3627 | + ) |
| 3628 | + for val in value: |
| 3629 | + if not isinstance(val, str): |
| 3630 | + raise ValueError("Error: input tags need to be strings") |
| 3631 | + params = json.loads(self.params) |
| 3632 | + params["tag"] = value[0] |
| 3633 | + params["secondary_tag"] = value[1] |
| 3634 | + self.params = json.dumps(params) |
| 3635 | + |
| 3636 | + def get_sort_tag(self): |
| 3637 | + params = json.loads(self.params) |
| 3638 | + return [params.get("sort", True), params.get("reverse_sort", False)] |
| 3639 | + |
| 3640 | + def set_sort_tag(self, value=None): |
| 3641 | + if value is None: |
| 3642 | + value = [True, False] |
| 3643 | + if not isinstance(value, list): |
| 3644 | + raise ValueError("Error: input needs to be a list") |
| 3645 | + if len(value) != 2: |
| 3646 | + raise ValueError( |
| 3647 | + "Error: input list needs to contain 2 elements: sort items by tag and reverse the sort" |
| 3648 | + ) |
| 3649 | + for val in value: |
| 3650 | + if not isinstance(val, bool): |
| 3651 | + raise ValueError("Error: input tags need to be True/False values") |
| 3652 | + params = json.loads(self.params) |
| 3653 | + params["sort"] = value[0] |
| 3654 | + if value[0] is False: |
| 3655 | + params["reverse_sort"] = False |
| 3656 | + else: |
| 3657 | + params["reverse_sort"] = value[1] |
| 3658 | + self.params = json.dumps(params) |
0 commit comments