Argparse: игнорировать несколько позиционных аргументов, когда указан необязательный аргумент

Я пытаюсь заставить argparse игнорировать тот факт, что два обычно требуемых позиционных аргумента не должны вычисляться, когда указан необязательный аргумент ( -l ).

В основном я пытаюсь реплицировать поведение --help: при указании -h все отсутствующие обязательные аргументы игнорируются.

Код примера:

parser = argparse.ArgumentParser(description="Foo bar baz")
parser.add_argument('arg1', help='arg1 is a positional argument that does this')
parser.add_argument('arg2', help='arg2 is a positional argument that does this')
parser.add_argument('-l', '--list', dest='list', help='this is an optional argument that prints stuff')

options, args = parser.parse_args()

if options.list:
   print "I list stuff"

И, конечно, если я запускаю его сейчас, я получаю:

error: too few arguments

Я пробовал разные вещи, как nargs = '?' , но не мог получить ничего работающего.

Этот вопрос довольно похож, но не получил ответа.

-121--925514-

Можно ли использовать рендеринг OpenGL для 3D мониторов? Мы рассматриваем возможность покупки ЖК-монитора 3D-ready вместе с машиной с графическим адаптером с поддержкой 3D-stereoscopic зрения (ATI Radeon 5870 или выше). Это для отображения некоторых научных данных...

Мы рассматриваем возможность покупки 3D-ready ЖК-монитора вместе с машиной с графическим адаптером с возможностью 3D-stereoscopic зрения (ATI Radeon 5870 или выше). Это для отображения некоторых научных данных, которые мы визуализируем в 3D с помощью OpenGL. Теперь мы можем ожидать, что графический процессор, монитор и затворные очки позаботятся о стереоскопическом дисплее или нам нужно изменить программу рендеринга? Если существуют специальные методы программирования графики для 3D стереоскопических дисплеев, некоторые учебные ссылки будут очень полезны.

7
задан subhacom 20 September 2011 в 10:59
поделиться