Skip to content

Commit eab2a9a

Browse files
authored
add iteratorGenerator API (#118)
1 parent da60069 commit eab2a9a

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

src/ansys/dynamicreporting/core/utils/report_objects.py

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
except ImportError:
3535
has_numpy = False
3636

37-
3837
logger = logging.getLogger(__name__)
3938

4039

@@ -3605,3 +3604,55 @@ def set_analysis_params(self, value=""):
36053604
d["stats_params"] = {}
36063605
d["stats_params"]["analysis_parameters"] = json.dumps(value)
36073606
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

Comments
 (0)