Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/library/argparse.rst
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ default values to each of the argument help messages::
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
usage: PROG [-h] [--foo FOO] [bar ...]

positional arguments:
bar BAR! (default: [1, 2, 3])
Expand Down
6 changes: 3 additions & 3 deletions Doc/library/pdb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -296,20 +296,20 @@ by the local file.
Temporary breakpoint, which is removed automatically when it is first hit.
The arguments are the same as for :pdbcmd:`break`.

.. pdbcommand:: cl(ear) [filename:lineno | bpnumber [bpnumber ...]]
.. pdbcommand:: cl(ear) [filename:lineno | bpnumber ...]

With a *filename:lineno* argument, clear all the breakpoints at this line.
With a space separated list of breakpoint numbers, clear those breakpoints.
Without argument, clear all breaks (but first ask confirmation).

.. pdbcommand:: disable [bpnumber [bpnumber ...]]
.. pdbcommand:: disable [bpnumber ...]

Disable the breakpoints given as a space separated list of breakpoint
numbers. Disabling a breakpoint means it cannot cause the program to stop
execution, but unlike clearing a breakpoint, it remains in the list of
breakpoints and can be (re-)enabled.

.. pdbcommand:: enable [bpnumber [bpnumber ...]]
.. pdbcommand:: enable [bpnumber ...]

Enable the breakpoints specified.

Expand Down
6 changes: 5 additions & 1 deletion Lib/argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,11 @@ def _format_args(self, action, default_metavar):
elif action.nargs == OPTIONAL:
result = '[%s]' % get_metavar(1)
elif action.nargs == ZERO_OR_MORE:
result = '[%s [%s ...]]' % get_metavar(2)
metavar = get_metavar(1)
if len(metavar) == 2:
result = '[%s [%s ...]]' % metavar
else:
result = '[%s ...]' % metavar
elif action.nargs == ONE_OR_MORE:
result = '%s [%s ...]' % get_metavar(2)
elif action.nargs == REMAINDER:
Expand Down
6 changes: 3 additions & 3 deletions Lib/pydoc_data/topics.py
Original file line number Diff line number Diff line change
Expand Up @@ -3903,7 +3903,7 @@
'is\n'
' first hit. The arguments are the same as for "break".\n'
'\n'
'cl(ear) [filename:lineno | bpnumber [bpnumber ...]]\n'
'cl(ear) [filename:lineno | bpnumber ...]\n'
'\n'
' With a *filename:lineno* argument, clear all the breakpoints '
'at\n'
Expand All @@ -3913,7 +3913,7 @@
'first\n'
' ask confirmation).\n'
'\n'
'disable [bpnumber [bpnumber ...]]\n'
'disable [bpnumber ...]\n'
'\n'
' Disable the breakpoints given as a space separated list of\n'
' breakpoint numbers. Disabling a breakpoint means it cannot '
Expand All @@ -3922,7 +3922,7 @@
'breakpoint, it\n'
' remains in the list of breakpoints and can be (re-)enabled.\n'
'\n'
'enable [bpnumber [bpnumber ...]]\n'
'enable [bpnumber ...]\n'
'\n'
' Enable the breakpoints specified.\n'
'\n'
Expand Down
14 changes: 7 additions & 7 deletions Lib/test/test_argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -2163,7 +2163,7 @@ def test_subparser1_help(self):

def test_subparser2_help(self):
self._test_subparser_help('5.0 2 -h', textwrap.dedent('''\
usage: PROG bar 2 [-h] [-y {1,2,3}] [z [z ...]]
usage: PROG bar 2 [-h] [-y {1,2,3}] [z ...]

2 description

Expand Down Expand Up @@ -2697,10 +2697,10 @@ def get_parser(self, required):
]

usage_when_not_required = '''\
usage: PROG [-h] [--foo | --spam SPAM | badger [badger ...]]
usage: PROG [-h] [--foo | --spam SPAM | badger ...]
'''
usage_when_required = '''\
usage: PROG [-h] (--foo | --spam SPAM | badger [badger ...])
usage: PROG [-h] (--foo | --spam SPAM | badger ...)
'''
help = '''\

Expand Down Expand Up @@ -3494,11 +3494,11 @@ class TestHelpUsage(HelpTestCase):
])
]
usage = '''\
usage: PROG [-h] [-w W [W ...]] [-x [X [X ...]]] [--foo | --no-foo]
usage: PROG [-h] [-w W [W ...]] [-x [X ...]] [--foo | --no-foo]
[--bar | --no-bar]
[-f | --foobar | --no-foobar | --barfoo | --no-barfoo] [-y [Y]]
[-z Z Z Z]
a b b [c] [d [d ...]] e [e ...]
a b b [c] [d ...] e [e ...]
'''
help = usage + '''\

Expand All @@ -3510,7 +3510,7 @@ class TestHelpUsage(HelpTestCase):
optional arguments:
-h, --help show this help message and exit
-w W [W ...] w
-x [X [X ...]] x
-x [X ...] x
--foo, --no-foo Whether to foo
--bar, --no-bar Whether to bar (default: True)
-f, --foobar, --no-foobar, --barfoo, --no-barfoo
Expand Down Expand Up @@ -5113,7 +5113,7 @@ def test_nargs_zeroormore_metavar_length0(self):
self.do_test_exception(nargs="*", metavar=tuple())

def test_nargs_zeroormore_metavar_length1(self):
self.do_test_exception(nargs="*", metavar=("1",))
self.do_test_no_exception(nargs="*", metavar=("1",))

def test_nargs_zeroormore_metavar_length2(self):
self.do_test_no_exception(nargs="*", metavar=("1", "2"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Simplify the :mod:`argparse` usage message for ``nargs="*"``.