Опция нескольких слов - PullRequest
       13

Опция нескольких слов

0 голосов
/ 28 января 2019

В настоящее время я пытаюсь использовать несколько вариантов слова с щелчком:

@click.command()
@click.option('--do-not-destroy', is_flag=True, default=False, 
              help='Do not destroy Selenium containers on exit')
@click.option('--run-tests', default=True, help="Run the tests.")
def main(do-not-destroy, run-tests):
    ...

Как правило, я хочу иметь параметр, который называется «не уничтожать».Поскольку имена параметров оформленной функции должны быть именами опции, параметр должен называться «не уничтожать».

Очевидно, что это имя параметра недопустимо.

Есть ли способ сказать клик по имени параметра, который он должен использовать для опции (например, do_not_destroy)?

1 Ответ

0 голосов
/ 28 января 2019

Нажмите, чтобы сопоставить любые параметры / аргументы с тире (-) с подчеркиванием (_).Итак:

--do-not-destroy

становится:

def main(do_not_destroy):

Код теста:

@click.command()
@click.option('--opt-with-dashes')
def hello(opt_with_dashes):
    """A Simple program"""
    click.echo('Opt w/ Dashes: {}'.format(opt_with_dashes))


if __name__ == '__main__':
    hello('--opt-with-dashes OPTION'.split())

Результаты:

Opt w/ Dashes: OPTION
...