mirror of https://github.com/python/cpython
gh-101599: argparse: simplify the option help string (GH-103372)
If the option with argument has short and long names, output argument only once, after the long name: -o, --option ARG description instead of -o ARG, --option ARG description
This commit is contained in:
parent
73d20cafb5
commit
c4a2e8a2c5
|
@ -564,22 +564,18 @@ class HelpFormatter(object):
|
|||
return metavar
|
||||
|
||||
else:
|
||||
parts = []
|
||||
|
||||
# if the Optional doesn't take a value, format is:
|
||||
# -s, --long
|
||||
if action.nargs == 0:
|
||||
parts.extend(action.option_strings)
|
||||
return ', '.join(action.option_strings)
|
||||
|
||||
# if the Optional takes a value, format is:
|
||||
# -s ARGS, --long ARGS
|
||||
# -s, --long ARGS
|
||||
else:
|
||||
default = self._get_default_metavar_for_optional(action)
|
||||
args_string = self._format_args(action, default)
|
||||
for option_string in action.option_strings:
|
||||
parts.append('%s %s' % (option_string, args_string))
|
||||
|
||||
return ', '.join(parts)
|
||||
return ', '.join(action.option_strings) + ' ' + args_string
|
||||
|
||||
def _metavar_formatter(self, action, default_metavar):
|
||||
if action.metavar is not None:
|
||||
|
|
|
@ -3922,7 +3922,7 @@ class TestHelpUsageWithParentheses(HelpTestCase):
|
|||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-p {1 (option A), 2 (option B)}, --optional {1 (option A), 2 (option B)}
|
||||
-p, --optional {1 (option A), 2 (option B)}
|
||||
'''
|
||||
version = ''
|
||||
|
||||
|
@ -4405,8 +4405,8 @@ class TestHelpAlternatePrefixChars(HelpTestCase):
|
|||
help = usage + '''\
|
||||
|
||||
options:
|
||||
^^foo foo help
|
||||
;b BAR, ;;bar BAR bar help
|
||||
^^foo foo help
|
||||
;b, ;;bar BAR bar help
|
||||
'''
|
||||
version = ''
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Changed argparse flag options formatting to remove redundancy.
|
Loading…
Reference in New Issue