Fix for issue 9355 where with multiple mutually exclusive arguments, some brackets were being lost in the usage messages
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 223790c..38dd8e6 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -392,10 +392,16 @@
for action in group._group_actions:
group_actions.add(action)
if not group.required:
- inserts[start] = '['
+ if start in inserts:
+ inserts[start] += ' ['
+ else:
+ inserts[start] = '['
inserts[end] = ']'
else:
- inserts[start] = '('
+ if start in inserts:
+ inserts[start] += ' ('
+ else:
+ inserts[start] = '('
inserts[end] = ')'
for i in range(start + 1, end):
inserts[i] = '|'