@@ -171,16 +171,24 @@ def replace_param_with_mapping(param, mapping):
171171 mapping: Mapping configuration to replace the parameter.
172172
173173 """
174- for k , v in param .items ():
175- if isinstance (v , dict ):
176- replace_param_with_mapping (v , mapping )
177- elif isinstance (v , str ):
178- for mk , mv in mapping .items ():
179- if mk in v :
180- v_old = v
181- v = v .replace (mk , mv )
182- param [k ] = v
183- logger .info (f"Mapped param { k } : { v_old } -> { param [k ]} " )
174+ if isinstance (param , dict ):
175+ items = param .items ()
176+ elif isinstance (param , (list , tuple )):
177+ items = enumerate (param )
178+ elif isinstance (param , str ):
179+ for mk , mv in mapping .items ():
180+ if mk in param :
181+ value_old = param
182+ value = param .replace (mk , mv )
183+ logger .info (f"Mapped param: { value_old } -> { value } " )
184+ param = value
185+ return param
186+ else :
187+ return param
188+
189+ for key , value in items :
190+ param [key ] = replace_param_with_mapping (value , mapping )
191+ return param
184192
185193
186194def organize_job_param (job , mapping ):
@@ -270,7 +278,7 @@ def synchronize_job(job_name, mapping):
270278 # Organize job parameters
271279 job = organize_job_param (job , mapping )
272280
273- # Store source job script path
281+ # Store destination job script path
274282 dst_job_script_s3_url = job ['Command' ]['ScriptLocation' ]
275283
276284 # Copy job script
0 commit comments