Моя программа 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.