@@ -174,9 +174,9 @@ def cmd_wrapper(*args: Any, **kwargs: Any) -> bool | None:
174174 :return: return value of command function
175175 """
176176 cmd2_app , statement = _parse_positionals (args )
177- _ , parsed_arglist = cmd2_app .statement_parser .get_command_arg_list (command_name , statement , preserve_quotes )
178- args_list = _arg_swap (args , statement , parsed_arglist )
179- return func (* args_list , ** kwargs )
177+ _ , command_arg_list = cmd2_app .statement_parser .get_command_arg_list (command_name , statement , preserve_quotes )
178+ func_arg_list = _arg_swap (args , statement , command_arg_list )
179+ return func (* func_arg_list , ** kwargs )
180180
181181 command_name = func .__name__ [len (constants .COMMAND_FUNC_PREFIX ) :]
182182 cmd_wrapper .__doc__ = func .__doc__
@@ -292,7 +292,7 @@ def cmd_wrapper(*args: Any, **kwargs: Any) -> bool | None:
292292 :raises Cmd2ArgparseError: if argparse has error parsing command line
293293 """
294294 cmd2_app , statement_arg = _parse_positionals (args )
295- statement , parsed_arglist = cmd2_app .statement_parser .get_command_arg_list (
295+ statement , command_arg_list = cmd2_app .statement_parser .get_command_arg_list (
296296 command_name , statement_arg , preserve_quotes
297297 )
298298
@@ -303,38 +303,40 @@ def cmd_wrapper(*args: Any, **kwargs: Any) -> bool | None:
303303 raise ValueError (f'No argument parser found for { command_name } ' ) # pragma: no cover
304304
305305 if ns_provider is None :
306- namespace = None
306+ initial_namespace = None
307307 else :
308308 # The namespace provider may or may not be defined in the same class as the command. Since provider
309309 # functions are registered with the command argparser before anything is instantiated, we
310310 # need to find an instance at runtime that matches the types during declaration
311311 provider_self = cmd2_app ._resolve_func_self (ns_provider , args [0 ])
312- namespace = ns_provider (provider_self if provider_self is not None else cmd2_app )
312+ initial_namespace = ns_provider (provider_self if provider_self is not None else cmd2_app )
313313
314314 try :
315- new_args : tuple [argparse .Namespace ] | tuple [argparse .Namespace , list [str ]]
315+ parsing_results : tuple [argparse .Namespace ] | tuple [argparse .Namespace , list [str ]]
316316 if with_unknown_args :
317- new_args = arg_parser .parse_known_args (parsed_arglist , namespace )
317+ parsing_results = arg_parser .parse_known_args (command_arg_list , initial_namespace )
318318 else :
319- new_args = (arg_parser .parse_args (parsed_arglist , namespace ),)
320- ns = new_args [0 ]
319+ parsing_results = (arg_parser .parse_args (command_arg_list , initial_namespace ),)
321320 except SystemExit as exc :
322321 raise Cmd2ArgparseError from exc
323- else :
324- # Add wrapped statement to Namespace as cmd2_statement
325- ns .cmd2_statement = Cmd2AttributeWrapper (statement )
326322
327- # Add wrapped subcmd handler (which can be None) to Namespace as cmd2_handler
328- handler = getattr (ns , constants .NS_ATTR_SUBCMD_HANDLER , None )
329- ns .cmd2_handler = Cmd2AttributeWrapper (handler )
323+ # Add cmd2-specific metadata to the Namespace
324+ parsed_namespace = parsing_results [0 ]
325+
326+ # Add wrapped statement to Namespace as cmd2_statement
327+ parsed_namespace .cmd2_statement = Cmd2AttributeWrapper (statement )
328+
329+ # Add wrapped subcmd handler (which can be None) to Namespace as cmd2_handler
330+ handler = getattr (parsed_namespace , constants .NS_ATTR_SUBCMD_HANDLER , None )
331+ parsed_namespace .cmd2_handler = Cmd2AttributeWrapper (handler )
330332
331- # Remove the subcmd handler attribute from the Namespace
332- # since cmd2_handler is how a developer accesses it.
333- if hasattr (ns , constants .NS_ATTR_SUBCMD_HANDLER ):
334- delattr (ns , constants .NS_ATTR_SUBCMD_HANDLER )
333+ # Remove the subcmd handler attribute from the Namespace
334+ # since cmd2_handler is how a developer accesses it.
335+ if hasattr (parsed_namespace , constants .NS_ATTR_SUBCMD_HANDLER ):
336+ delattr (parsed_namespace , constants .NS_ATTR_SUBCMD_HANDLER )
335337
336- args_list = _arg_swap (args , statement_arg , * new_args )
337- return func (* args_list , ** kwargs )
338+ func_arg_list = _arg_swap (args , statement_arg , * parsing_results )
339+ return func (* func_arg_list , ** kwargs )
338340
339341 command_name = func .__name__ [len (constants .COMMAND_FUNC_PREFIX ) :]
340342
0 commit comments