@@ -641,6 +641,7 @@ def _run(self, i):
641641 docker_settings = run_state ['docker' ]
642642
643643 input_mapping = meta .get ('input_mapping' , {})
644+ input_description = meta .get ('input_description' , {})
644645
645646 docker_settings = meta .get ('docker' )
646647
@@ -675,10 +676,12 @@ def _run(self, i):
675676 # (env OVERWRITE - user enforces it from CLI)
676677 # (it becomes const)
677678 if input_mapping :
678- update_env_from_input_mapping (env , i , input_mapping )
679- update_env_from_input_mapping (const , i , input_mapping )
679+ update_env_from_input_mapping (
680+ env , i , input_mapping , input_description )
681+ update_env_from_input_mapping (
682+ const , i , input_mapping , input_description )
680683
681- # This mapping is done in module_misc
684+ # This mapping is done in docker script
682685 # if docker_input_mapping:
683686 # update_env_from_input_mapping(env, i, docker_input_mapping)
684687 # update_env_from_input_mapping(const, i, docker_input_mapping)
@@ -5520,13 +5523,18 @@ def update_deps_from_input(deps, post_deps, prehook_deps, posthook_deps, i):
55205523
55215524
55225525##############################################################################
5523- def update_env_from_input_mapping (env , inp , input_mapping ):
5526+ def update_env_from_input_mapping (
5527+ env , inp , input_mapping , input_description = {}):
55245528 """
55255529 Internal: update env from input and input_mapping
55265530 """
55275531 for key in input_mapping :
55285532 if key in inp :
5529- env [input_mapping [key ]] = inp [key ]
5533+ if key in input_description and str (input_description [key ].get (
5534+ 'is_path' , '' )).lower () in ['1' , 'yes' , 'on' , 'true' ]:
5535+ env [input_mapping [key ]] = os .path .expanduser (inp [key ])
5536+ else :
5537+ env [input_mapping [key ]] = inp [key ]
55305538
55315539
55325540def _apply_conditional_meta_updates (update_meta_if_env , default_env , env , const , state , const_state ,
@@ -5724,7 +5732,11 @@ def update_state_from_meta(meta, env, state, const, const_state, run_state, i):
57245732
57255733 input_mapping = meta .get ('input_mapping' , {})
57265734 if input_mapping :
5727- update_env_from_input_mapping (env , input_update_env , input_mapping )
5735+ update_env_from_input_mapping (
5736+ env ,
5737+ input_update_env ,
5738+ input_mapping ,
5739+ meta .get ('input_description' , {}))
57285740
57295741 # handle dynamic env values
57305742 r = update_env_with_values (env )
0 commit comments