如何为CommandCollection click命令添加帮助?

时间:2017-05-05 12:09:08

标签: python command-line-interface python-click

我尝试使用点击库向命令行应用添加帮助。如official documentation中所述,

  

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

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

import click

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

if __name__ == '__main__':
    cli()

运行此选项将显示方法' s doscstring:

中脚本的说明
Usage: example.py [OPTIONS]

  This is sample description of script.

Options:
  --help  Show this message and exit.

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

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 __ 参数
  • 将docstring添加到 cli1 方法,用@ click.group
  • 修饰

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

只需使用 help 参数:

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