Вот мой простой скрипт test.py:
import argparse
parser = argparse.ArgumentParser('A long string that goes on and on and on'
'and on and on and on and on and on and on '
'and on and on and on and on and on and on '
'and on and on and on and on and on and on ')
me_group = parser.add_mutually_exclusive_group()
me_group.add_argument('-f', help=argparse.SUPPRESS)
me_group.add_argument('-o', help=argparse.SUPPRESS)
parser.add_argument('-t', help='c')
parser.parse_args()
Когда я запускаю следующее:
python test.py --help
Я получаю эту ошибку AssertionError:
...
File "/usr/lib/python2.7/argparse.py", line 332, in _format_usage
assert ' '.join(opt_parts) == opt_usage
AssertionError
This Кажется, это происходит только тогда, когда я подавляю все аргументы во взаимоисключающей группе. Если один или несколько не подавлен, то все работает нормально. Если я распечатываю две стороны сравнения:
print ' '.join(opt_parts)
print opt_usage
, я получаю следующее:
[-h] [-t T]
[-h] [-t T]
Похоже, там есть дополнительное пространство. Есть идеи, почему это будет? Что-то я делаю неправильно?