python 如何更改Click的默认帮助选项?

wn9m85ua  于 2023-10-15  发布在  Python
关注(0)|答案(2)|浏览(117)

无论何时使用Click创建命令或组,都有一个默认的--help选项来提供使用指南:

import click

@click.command()
def main():
    click.echo('Success!')

if __name__ == '__main__':
    main()

如果我用--help运行这个文件,我应该得到:

$ python file.py --help
Usage: file.py [OPTIONS]

Options:
--help  Show this message and exit.

现在,Click允许您通过装饰器中的参数覆盖如何通过终端调用help选项:

@click.command(
    context_settings=dict(
        help_option_names=['-f', '--foo']
    )
)
def main():
    click.echo('Success!')
$ python file.py -f
Usage: file.py [OPTIONS]

Options:
-f, --foo  Show this message and exit.

然而,翻遍Click的文档,我没有看到类似的选项来覆盖默认的帮助 * 消息
是否有一个参数可以指定给click.command,当在终端中请求帮助时,该参数可以覆盖文本
*“显示此消息并退出”**?

pu3pd22g

pu3pd22g1#

可以使用help_option装饰器更改click的默认帮助选项

示例代码:

@click.command(add_help_option=False)
@click.help_option('--foo', '-f', help='Show my better message and exit')
def main():
    """The docstring is the Help Message"""
    click.echo('Success!')

测试码:

if __name__ == "__main__":
    print('Click Version: {}'.format(click.__version__))
    print('Python Version: {}'.format(sys.version))
    print('-----------')
    cmd = 'main --foo'
    print('> ' + cmd)
    main(cmd.split())

测试结果:

Click Version: 8.1.3
Python Version: 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)]
-----------
> main --foo
Usage: test_code.py [OPTIONS]

  The docstring is the Help Message

Options:
  -f, --foo  Show my better message and exit
nkkqxpd9

nkkqxpd92#

对于更改帮助文本,只需一行help_option装饰器即可

@click.help_option('--help', help='Show my better message and exit')

或者,您可以按照完整的@Stephen Rauch的答案来调整细节

相关问题