From cc8b7318bd5293713d38cb9bb5e4c31491caada7 Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Mon, 25 Sep 2023 17:07:10 -0300 Subject: [PATCH] deep copy participant --- package_io/input_parser.star | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/package_io/input_parser.star b/package_io/input_parser.star index e553eea..8bffaf7 100644 --- a/package_io/input_parser.star +++ b/package_io/input_parser.star @@ -89,8 +89,12 @@ def parse_input(input_args): elif attr == "participants": participants = [] for participant in input_args["participants"]: - new_participant = create_new_participant(participant) + new_participant = default_participant() + for sub_attr, sub_value in participant.items(): + # if the value is set in input we set it in participant + new_participant[sub_attr] = sub_value for _ in range(0, new_participant["count"]): + participant_copy = deep_copy_participant(new_participant) participants.append(new_participant) result["participants"] = participants @@ -174,13 +178,14 @@ def parse_input(input_args): return result -def create_new_participant(participant_from_args): - new_participant = default_participant() - for sub_attr, sub_value in participant_from_args.items(): - # if the value is set in input we set it in participant - new_participant[sub_attr] = sub_value - - return new_participant +def deep_copy_participant(participant): + part = {} + for k, v in participant.items(): + if type(v) == type([]): + part[k] = list(v) + else: + part[k] = v + return part def get_client_log_level_or_default(participant_log_level, global_log_level, client_log_levels): log_level = participant_log_level