From 9b5a98825a9b00807a40494e8c634c392077ccd2 Mon Sep 17 00:00:00 2001 From: Kevin Van Brunt Date: Tue, 25 Aug 2020 01:46:04 -0400 Subject: Fixed RecursionError when printing an argparse.Namespace caused by custom attribute cmd2 was adding Added get_statement() function to argparse.Namespace which returns __statement__ attribute --- cmd2/cmd2.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'cmd2/cmd2.py') diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index da576805..bc6691f6 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -663,7 +663,9 @@ class Cmd(cmd.Cmd): raise CommandSetRegistrationError('Could not find argparser for command "{}" needed by subcommand: {}' .format(command_name, str(method))) - subcmd_parser.set_defaults(cmd2_handler=method) + # Set the subcommand handler function + defaults = {constants.NS_ATTR_SUBCMD_HANDLER: method} + subcmd_parser.set_defaults(**defaults) def find_subcommand(action: argparse.ArgumentParser, subcmd_names: List[str]) -> argparse.ArgumentParser: if not subcmd_names: -- cgit v1.2.1