python 中的自定义帮助点击
Custom help in python click
默认情况下,click 添加了一个 --help
选项,该选项根据 click 命令的结构输出标准化的用法文本:
Usage: ...
Options: ...
Commands:
...
...
如何覆盖此行为以获得自定义帮助输出?我想做的是使用丰富的库输出自定义消息。
诀窍是创建一个 click.Group
class 并覆盖 format_help
方法
class RichGroup(click.Group):
def format_help(self, ctx, formatter):
sio = io.StringIO()
console = rich.Console(file=sio, force_terminal=True)
console.print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:")
formatter.write(sio.getvalue())
@click.group(cls=RichGroup)
def cli():
pass
要添加到已接受的答案中,如果您只需要命令的此自定义功能,您还可以子类化 click.Command
:
class HelpfulCmd(click.Command):
def format_help(self, ctx, formatter):
click.echo("My custom help message")
@click.command(cls=HelpfulCmd)
def mycommand():
pass
默认情况下,click 添加了一个 --help
选项,该选项根据 click 命令的结构输出标准化的用法文本:
Usage: ...
Options: ...
Commands:
...
...
如何覆盖此行为以获得自定义帮助输出?我想做的是使用丰富的库输出自定义消息。
诀窍是创建一个 click.Group
class 并覆盖 format_help
方法
class RichGroup(click.Group):
def format_help(self, ctx, formatter):
sio = io.StringIO()
console = rich.Console(file=sio, force_terminal=True)
console.print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:")
formatter.write(sio.getvalue())
@click.group(cls=RichGroup)
def cli():
pass
要添加到已接受的答案中,如果您只需要命令的此自定义功能,您还可以子类化 click.Command
:
class HelpfulCmd(click.Command):
def format_help(self, ctx, formatter):
click.echo("My custom help message")
@click.command(cls=HelpfulCmd)
def mycommand():
pass