diff options
author | kmvanbrunt <kmvanbrunt@gmail.com> | 2018-04-23 10:45:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-23 10:45:57 -0400 |
commit | c9b676ab80872a61f5d843fc3804d14eca6786ba (patch) | |
tree | 40945f85aeff71f639bffe1fa7c87ef23a8c17dd /examples/subcommands.py | |
parent | a0a46f9396a72f440f65e46d7170a0d366796574 (diff) | |
parent | cbb94bff0cfed8c0ccbf8e0c2dd4c61f59881573 (diff) | |
download | cmd2-git-c9b676ab80872a61f5d843fc3804d14eca6786ba.tar.gz |
Merge pull request #366 from python-cmd2/autocompleter
argparse Autocompleter integration into cmd2
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() |