如何为 CommandCollection 单击命令添加帮助?

gru*_*dic 1 python command-line-interface python-click

我正在尝试使用单击库向命令行应用程序添加帮助。正如官方文档中提到的,

对于命令,会生成一个简短的帮助片段。默认情况下,它是命令帮助消息的第一句话,除非它太长。这也可以被覆盖

使用简单的 @click.command 一切正常:

import click

@click.command()
def cli():
    """This is sample description of script."""

if __name__ == '__main__':
    cli()
Run Code Online (Sandbox Code Playgroud)

运行它会从方法的 doscstring 显示脚本的描述:

Usage: example.py [OPTIONS]

  This is sample description of script.

Options:
  --help  Show this message and exit.
Run Code Online (Sandbox Code Playgroud)

但是我需要使用 CommandCollection,因为我正在创建一个由多个命令组成的脚本。以下是官方帮助的示例:

import click


@click.group()
def cli1():
    pass


@cli1.command()
def cmd1():
    """Command on cli1"""


@click.group()
def cli2():
    pass


@cli2.command()
def cmd2():
    """Command on cli2"""


cli = click.CommandCollection(sources=[cli1, cli2])

if __name__ == '__main__':
    cli()
Run Code Online (Sandbox Code Playgroud)

而且我不知道如何向整个命令集合添加描述。到目前为止我尝试过的:

  • 使用附加的short_help参数提供帮助
  • 在创建 CommandCollection 后,为 cli 参数设置__doc__参数
  • 将 docstring 添加到cli1方法,用 @click.group 修饰

任何帮助深表感谢。

gru*_*dic 5

只需使用帮助参数:

cli = click.CommandCollection(sources=[cli1, cli2], help="This would be your description, dude!")
Run Code Online (Sandbox Code Playgroud)