Skip to content

Commit 9fc5683

Browse files
committed
Use add_subparsers() 'required' keyword argument added in Python 3.7.
1 parent f85e7fc commit 9fc5683

File tree

5 files changed

+7
-14
lines changed

5 files changed

+7
-14
lines changed

cmd2/cmd2.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,8 +3404,7 @@ def _cmdloop(self) -> None:
34043404
alias_description = "Manage aliases\n" "\n" "An alias is a command that enables replacement of a word by another string."
34053405
alias_epilog = "See also:\n" " macro"
34063406
alias_parser = argparse_custom.DEFAULT_ARGUMENT_PARSER(description=alias_description, epilog=alias_epilog)
3407-
alias_subparsers = alias_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
3408-
alias_subparsers.required = True
3407+
alias_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
34093408

34103409
# Preserve quotes since we are passing strings to other commands
34113410
@with_argparser(alias_parser, preserve_quotes=True)
@@ -3573,8 +3572,7 @@ def _alias_list(self, args: argparse.Namespace) -> None:
35733572
macro_description = "Manage macros\n" "\n" "A macro is similar to an alias, but it can contain argument placeholders."
35743573
macro_epilog = "See also:\n" " alias"
35753574
macro_parser = argparse_custom.DEFAULT_ARGUMENT_PARSER(description=macro_description, epilog=macro_epilog)
3576-
macro_subparsers = macro_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
3577-
macro_subparsers.required = True
3575+
macro_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
35783576

35793577
# Preserve quotes since we are passing strings to other commands
35803578
@with_argparser(macro_parser, preserve_quotes=True)

tests/test_argparse.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,7 @@ def test_preservelist(argparse_app):
250250

251251
def _build_has_subcmd_parser() -> cmd2.Cmd2ArgumentParser:
252252
has_subcmds_parser = cmd2.Cmd2ArgumentParser(description="Tests as_subcmd_to decorator")
253-
has_subcmds_subparsers = has_subcmds_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
254-
has_subcmds_subparsers.required = True
253+
has_subcmds_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
255254
return has_subcmds_parser
256255

257256

@@ -273,8 +272,7 @@ def base_helpless(self, args):
273272

274273
# create the top-level parser for the base command
275274
base_parser = cmd2.Cmd2ArgumentParser()
276-
base_subparsers = base_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
277-
base_subparsers.required = True
275+
base_subparsers = base_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
278276

279277
# create the parser for the "foo" subcommand
280278
parser_foo = base_subparsers.add_parser('foo', help='foo help')

tests/test_argparse_completer.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,8 +1249,7 @@ def do_custom_completer(self, args: argparse.Namespace) -> None:
12491249

12501250
# Test as_subcommand_to decorator with custom completer
12511251
top_parser = Cmd2ArgumentParser(description="Top Command")
1252-
top_subparsers = top_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
1253-
top_subparsers.required = True
1252+
top_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
12541253

12551254
@with_argparser(top_parser)
12561255
def do_top(self, args: argparse.Namespace) -> None:

tests_isolated/test_commandset/test_argparse_subcommands.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ def base_helpless(self, args):
3535

3636
# create the top-level parser for the base command
3737
base_parser = cmd2.Cmd2ArgumentParser()
38-
base_subparsers = base_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
39-
base_subparsers.required = True
38+
base_subparsers = base_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
4039

4140
# create the parser for the "foo" subcommand
4241
parser_foo = base_subparsers.add_parser('foo', help='foo help')

tests_isolated/test_commandset/test_commandset.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ def do_elderberry(self, ns: argparse.Namespace):
9393
# Test that CommandSet with as_subcommand_to decorator successfully loads
9494
# during `cmd2.Cmd.__init__()`.
9595
main_parser = cmd2.Cmd2ArgumentParser(description="Main Command")
96-
main_subparsers = main_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND')
97-
main_subparsers.required = True
96+
main_parser.add_subparsers(dest='subcommand', metavar='SUBCOMMAND', required=True)
9897

9998
@cmd2.with_category('Alone')
10099
@cmd2.with_argparser(main_parser)

0 commit comments

Comments
 (0)