Skip to content

Commit

Permalink
gh-101599: argparse: simplify the option help string (GH-103372)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Jokimax authored Feb 2, 2024
1 parent 73d20ca commit c4a2e8a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 10 deletions.
10 changes: 3 additions & 7 deletions Lib/argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,22 +564,18 @@ def _format_action_invocation(self, action):
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:
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = ''

Expand Down Expand Up @@ -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 = ''

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Changed argparse flag options formatting to remove redundancy.

0 comments on commit c4a2e8a

Please sign in to comment.