serhiy-storchaka · GitHub

Bug report

Without color, argparse strips the outer [] in a group. But it is not stripped with color.

The following example:

import argparse
parser = argparse.ArgumentParser(color=False, prog="PROG")
group = parser.add_mutually_exclusive_group()
group.add_argument('--foo', action='store_true', help='FOO')
group.add_argument('--spam', help='SPAM')
group.add_argument('badger', nargs='*', help='BADGER')
print(parser.format_usage())
parser = argparse.ArgumentParser(color=True, prog="PROG")
group = parser.add_mutually_exclusive_group()
group.add_argument('--foo', action='store_true', help='FOO')
group.add_argument('--spam', help='SPAM')
group.add_argument('badger', nargs='*', help='BADGER')
print(parser.format_usage())

outputs:

usage: PROG [-h] [--foo | --spam SPAM | badger ...]
usage: PROG [-h] [--foo | --spam SPAM | [badger ...]]

(the latter line in color).

Linked PRs

Read the original on github.com ↗