diff options
author | kotfu <kotfu@kotfu.net> | 2018-04-23 22:59:32 -0600 |
---|---|---|
committer | kotfu <kotfu@kotfu.net> | 2018-04-23 22:59:32 -0600 |
commit | 6c489908e3238082328e73b20aa683d31ef88741 (patch) | |
tree | 7f7a7ee915491e15ad3f80f12532bd8388db0255 /examples/subcommands.py | |
parent | 4d2143d3537a5a7b2a964ffa425ef5702aa8c15c (diff) | |
parent | f11b06374aaf56b755de33a763220140d36eab64 (diff) | |
download | cmd2-git-6c489908e3238082328e73b20aa683d31ef88741.tar.gz |
Merge branch 'master' into ply
Diffstat (limited to 'examples/subcommands.py')
-rwxr-xr-x | examples/subcommands.py | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/examples/subcommands.py b/examples/subcommands.py index 031b17b2..75c0733e 100755 --- a/examples/subcommands.py +++ b/examples/subcommands.py @@ -35,12 +35,6 @@ class SubcommandsExample(cmd2.Cmd): """sport subcommand of base command""" self.poutput('Sport is {}'.format(args.sport)) - # noinspection PyUnusedLocal - def complete_base_sport(self, text, line, begidx, endidx): - """ Adds tab completion to base sport subcommand """ - index_dict = {1: sport_item_strs} - return self.index_based_complete(text, line, begidx, endidx, index_dict) - # create the top-level parser for the base command base_parser = argparse.ArgumentParser(prog='base') base_subparsers = base_parser.add_subparsers(title='subcommands', help='subcommand help') @@ -53,15 +47,22 @@ class SubcommandsExample(cmd2.Cmd): # create the parser for the "bar" subcommand parser_bar = base_subparsers.add_parser('bar', help='bar help') - parser_bar.add_argument('z', help='string') parser_bar.set_defaults(func=base_bar) + bar_subparsers = parser_bar.add_subparsers(title='layer3', help='help for 3rd layer of commands') + parser_bar.add_argument('z', help='string') + + bar_subparsers.add_parser('apple', help='apple help') + bar_subparsers.add_parser('artichoke', help='artichoke help') + bar_subparsers.add_parser('cranberries', help='cranberries help') + # create the parser for the "sport" subcommand parser_sport = base_subparsers.add_parser('sport', help='sport help') - parser_sport.add_argument('sport', help='Enter name of a sport') + sport_arg = parser_sport.add_argument('sport', help='Enter name of a sport') + setattr(sport_arg, 'arg_choices', sport_item_strs) # Set both a function and tab completer for the "sport" subcommand - parser_sport.set_defaults(func=base_sport, completer=complete_base_sport) + parser_sport.set_defaults(func=base_sport) @with_argparser(base_parser) def do_base(self, args): @@ -74,9 +75,6 @@ class SubcommandsExample(cmd2.Cmd): # No subcommand was provided, so call help self.do_help('base') - # Enable tab completion of base to make sure the subcommands' completers get called. - complete_base = cmd2.Cmd.cmd_with_subs_completer - if __name__ == '__main__': app = SubcommandsExample() |