Python click group: How to have -h/--help for all commands

gel*_*ida 2 python python-click

Context:

I'm having several scripts with loads of sub commands that I'd like to convert to using click

目前,所有这些命令都接受-h--help以便显示帮助选项。我想保持这种行为。

问题:

单击接受默认--help显示帮助文本,但不显示-h

对于单击命令,可以通过添加轻松更改。

@click.group()
@click.help_option("--help", "-h")
def cli():
    """ the doc string """
    enter code here

@cli.command()
@click.help_option("--help", "-h")
def mycommand()
    pass

@cli.command()
@click.help_option("--help", "-h")
def mycommand1()
    pass

...
Run Code Online (Sandbox Code Playgroud)

但是,如果我有数十个命令,我必须重新应用装饰器行

@click.help_option("--help", "-h")
Run Code Online (Sandbox Code Playgroud)

堡垒每个子命令。

有什么技巧可以避免到处写这一行吗?

小智 5

您需要定义一个 CONTEXT_SETTINGS 并像这样使用它:

\n\n
CONTEXT_SETTINGS = dict(help_option_names=[\'-h\', \'--help\'])\n\n@click.command(context_settings=CONTEXT_SETTINGS)\ndef cli():\n    pass\n
Run Code Online (Sandbox Code Playgroud)\n\n

从点击文档

\n\n
\n

帮助参数自定义变更日志 Click 中以一种非常特殊的方式实现帮助参数。与常规参数不同,它通过单击任何命令自动添加,并执行自动冲突解决。默认情况下,\xe2\x80\x99 调用 --help,\n 但这可以更改。如果命令本身实现具有相同名称的参数,则默认帮助参数将停止接受它。有一个上下文设置可用于覆盖名为 help_option_names 的帮助参数的名称。

\n\n

此示例将默认参数更改为 -h 和 --help 而不是仅 --help:

\n\n

CONTEXT_SETTINGS = dict(help_option_names=[\'-h\', \'--help\'])

\n\n

@click.command(context_settings=CONTEXT_SETTINGS) def cli():\n pass 它看起来像什么:

\n\n

$ cli -h 用法:cli [选项]

\n\n

选项:-h、--help 显示此消息并退出。

\n
\n