Значение по умолчанию для опции подпарсера (Python argparse) - PullRequest
0 голосов
/ 13 декабря 2018

Моя программа boiler использует argparse для анализа параметров командной строки и подпаратера chain (на самом деле я собираюсь добавить больше подкоманд).Параметр -t должен принимать как основной синтаксический анализатор, так и подпарсер.

Пример:

boiler -t URL chain

эквивалентен

boiler chain -t URL

ПодкомандаОпция парсера переопределяет глобальную опцию.Например:

boiler -t URL1 chain -t URL2

эквивалентно

boiler chain -t URL2

Какой самый элегантный способ кодировать это с Python argparse?

То, что я на самом делеВ этом ответе описано следующее: https://stackoverflow.com/a/53750697/856090 вопроса Объединение в командной строке нескольких преобразований с параметрами .Обратите внимание, что описанное выше не совсем то, что мне нужно, но мне нужно проанализировать конвейер подкоманд, как описано там (некоторые из этих подкоманд могут принимать параметр -t и другие параметры с возможным глобальным значением по умолчанию).

Пример того, что мне действительно нужно:

boiler -t URL1 pipe 'chain -t URL2 + chain'

Здесь первая цепочка из двух цепочек, разделенных +, использует URL2, а вторая - URL1.

...