Как реализовать --version, используя python click? - PullRequest
1 голос
/ 02 ноября 2019

Я хочу реализовать mycommand --version, используя python click. У меня что-то вроде этого работает, но мне кажется, что это немного неуклюже.

@click.group(invoke_without_command=True, no_args_is_help=True)
@click.pass_context
@click.option('--version', 'version')
def cli(ctx, version):
    if version:
        ctx.echo(f'{sys.argv[0]} {__version__}')
        ctx.exit()

1 Ответ

2 голосов
/ 02 ноября 2019

Как оказалось, click имеет встроенный декоратор click.version_option для этого. Код теперь становится

@click.group()
@click.version_option(__version__)
@click.pass_context
def cli(ctx):
    pass
...