自动生成有关Click命令的所有帮助文档

sco*_*tle 6 python command-line-interface python-click

有没有一种方法可以使用click为所有命令和子命令生成(和导出)帮助文档?

例如,

cli --help all --destination help-docs.txt

将在命令之后生成命令和子命令的帮助

cli command subcommand

格式化并放入help-docs.txt文件中。

我认为可以完成此操作的唯一方法是使用

cli command subcommand --help

我想要为其生成帮助并将cat其输出到文件的每个子命令,但是如果有一种更简单的方法来使用Click --help功能来完成此操作,那将是很好的选择。

fpb*_*bhb 9

此代码适用于 Click 7,使用大部分已记录的 API。您基本上会调用recursive_help某个地方,例如作为单独的子命令,并将其传递给您的顶级组对象。

def recursive_help(cmd, parent=None):
    ctx = click.core.Context(cmd, info_name=cmd.name, parent=parent)
    print(cmd.get_help(ctx))
    print()
    commands = getattr(cmd, 'commands', {})
    for sub in commands.values():
        recursive_help(sub, ctx)
Run Code Online (Sandbox Code Playgroud)

更新 2019-10-05:使用它的一种方法,假设cli是 a click.group,将是:

@cli.command()
def dumphelp():
    recursive_help(cli)
Run Code Online (Sandbox Code Playgroud)