mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
gh-101979: argparse: fix a bug where parentheses in metavar argument of add_argument() were dropped (#102318)
This commit is contained in:
parent
66aa78cbe6
commit
9a478be1a4
3 changed files with 34 additions and 3 deletions
|
@ -403,10 +403,18 @@ class HelpFormatter(object):
|
|||
except ValueError:
|
||||
continue
|
||||
else:
|
||||
end = start + len(group._group_actions)
|
||||
group_action_count = len(group._group_actions)
|
||||
end = start + group_action_count
|
||||
if actions[start:end] == group._group_actions:
|
||||
|
||||
suppressed_actions_count = 0
|
||||
for action in group._group_actions:
|
||||
group_actions.add(action)
|
||||
if action.help is SUPPRESS:
|
||||
suppressed_actions_count += 1
|
||||
|
||||
exposed_actions_count = group_action_count - suppressed_actions_count
|
||||
|
||||
if not group.required:
|
||||
if start in inserts:
|
||||
inserts[start] += ' ['
|
||||
|
@ -416,7 +424,7 @@ class HelpFormatter(object):
|
|||
inserts[end] += ']'
|
||||
else:
|
||||
inserts[end] = ']'
|
||||
else:
|
||||
elif exposed_actions_count > 1:
|
||||
if start in inserts:
|
||||
inserts[start] += ' ('
|
||||
else:
|
||||
|
@ -490,7 +498,6 @@ class HelpFormatter(object):
|
|||
text = _re.sub(r'(%s) ' % open, r'\1', text)
|
||||
text = _re.sub(r' (%s)' % close, r'\1', text)
|
||||
text = _re.sub(r'%s *%s' % (open, close), r'', text)
|
||||
text = _re.sub(r'\(([^|]*)\)', r'\1', text)
|
||||
text = text.strip()
|
||||
|
||||
# return the text
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue