@@ -326,17 +326,27 @@ def _perform_substitutions(self, context: LaunchContext, executable: Executable)
326326 raise
327327 self .__final_node_name = prefix_namespace (
328328 self .__expanded_node_namespace , self .__expanded_node_name )
329- # expand global parameters first,
330- # so they can be overriden with specific parameters of this Node
331- global_params = context .launch_configurations .get ('global_params' , None )
332- if global_params is not None or self .__parameters is not None :
329+
330+ # Expand global parameters first,
331+ # so they can be overridden with specific parameters of this Node
332+ # The params_container list is expected to contain name-value pairs (tuples)
333+ # and/or strings representing paths to parameter files.
334+ params_container = context .launch_configurations .get ('global_params' , None )
335+
336+ if any (x is not None for x in (params_container , self .__parameters )):
333337 self .__expanded_parameter_arguments = []
334- if global_params is not None :
335- param_file_path = self ._create_params_file_from_dict (global_params )
336- self .__expanded_parameter_arguments .append ((param_file_path , True ))
337- cmd_ext = ['--params-file' , f'{ param_file_path } ' ]
338- cmd .extend ([normalize_to_list_of_substitutions (x ) for x in cmd_ext ])
339- assert os .path .isfile (param_file_path )
338+ if params_container is not None :
339+ for param in params_container :
340+ if isinstance (param , tuple ):
341+ name , value = param
342+ cmd_extension = ['-p' , f'{ name } :={ value } ' ]
343+ cmd .extend ([normalize_to_list_of_substitutions (x ) for x in cmd_extension ])
344+ else :
345+ param_file_path = os .path .abspath (param )
346+ self .__expanded_parameter_arguments .append ((param_file_path , True ))
347+ cmd_extension = ['--params-file' , f'{ param_file_path } ' ]
348+ assert os .path .isfile (param_file_path )
349+ cmd .extend ([normalize_to_list_of_substitutions (x ) for x in cmd_extension ])
340350 # expand parameters too
341351 if self .__parameters is not None :
342352 evaluated_parameters = evaluate_parameters (context , self .__parameters )
@@ -407,7 +417,7 @@ def _perform_substitutions(self, context: LaunchContext, executable: Executable)
407417 add_node_name (context , self .node_name )
408418 node_name_count = get_node_name_count (context , self .node_name )
409419 if node_name_count > 1 :
410- execute_process_logger = launch .logging .get_logger (self .name )
420+ execute_process_logger = launch .logging .get_logger (self .node_name )
411421 execute_process_logger .warning (
412422 'there are now at least {} nodes with the name {} created within this '
413423 'launch context' .format (node_name_count , self .node_name )
0 commit comments