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\nCONTEXT_SETTINGS = dict(help_option_names=[\'-h\', \'--help\'])\n\n@click.command(context_settings=CONTEXT_SETTINGS)\ndef cli():\n pass\nRun Code Online (Sandbox Code Playgroud)\n\n从点击文档:
\n\n\n\n帮助参数自定义变更日志 Click 中以一种非常特殊的方式实现帮助参数。与常规参数不同,它通过单击任何命令自动添加,并执行自动冲突解决。默认情况下,\xe2\x80\x99 调用 --help,\n 但这可以更改。如果命令本身实现具有相同名称的参数,则默认帮助参数将停止接受它。有一个上下文设置可用于覆盖名为 help_option_names 的帮助参数的名称。
\n\n此示例将默认参数更改为 -h 和 --help 而不是仅 --help:
\n\nCONTEXT_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