Рефакторинг аргументов @click.option()Python

Программы на Python
Гость
Рефакторинг аргументов @click.option()

Сообщение Гость »


Скажем, у меня есть это (минимальный пример из более крупного сценария):

импортировать клик @click.command() @click.option('--foo', требуется=True) def bar1(foo: str) -> Нет: print(f"bar1: {foo}") @click.command() @click.option('--foo', требуется=True) def bar2(foo: str) -> Нет: print(f"bar2: {foo}") если __name__ == '__main__': bar1() # на самом деле они вызываются из раздела поэтических сценариев в pyproject.toml # бар2() Я бы хотел избежать повторения одной и той же опции --foo с одинаковыми аргументами как для bar1, так и для bar2. Может быть, что-то вроде

@click.option(*ClickOptions.foo) но это не работает, поскольку опция foo также принимает аргумент ключевого слова required=True. Мне бы хотелось избежать такого разделения:

@click.option(*ClickOptions.foo.args, **ClickOptions.foo.kwargs) Есть ли элегантный способ сделать это?

Вернуться в «Python»