1

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

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

使用简单的@click.command,一切都按预期工作:

import click

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

if __name__ == '__main__':
    cli()

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

Usage: example.py [OPTIONS]

  This is sample description of script.

Options:
  --help  Show this message and exit.

但我需要使用 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()

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

  • 通过额外的 short_help参数提供帮助
  • 在创建 CommandCollection 后为 cli 参数设置__doc__参数
  • 将文档字符串添加到cli1方法,用 @click.group 装饰

任何帮助深表感谢。

4

1 回答 1

6

只需使用帮助参数:

cli = click.CommandCollection(sources=[cli1, cli2], help="This would be your description, dude!")
于 2017-05-05T12:29:01.150 回答