如何告诉单击以始终显示选项默认值
How to tell Click to always show option defaults
在 Python 的 Click 包中,我可以为选项定义默认值:
@click.option("--count", default=1, help="Number of greetings.")
我可以指定帮助中显示默认值:
@click.option("--count", default=1, help="Number of greetings.", show_default=True)
如果我有很多选择
@click.option("--count-a", default=1, help="...")
@click.option("--count-b", default=2, help="...")
@click.option("--count-c", default=4, help="...")
.
.
.
我如何让 Click 一般地 总是 在帮助中显示默认值(没有明确地将 show_default=True
添加到每个单独选项的参数列表中)?
您可以很容易地定义自己的函数,例如:
代码
def click_option(*args, **kwargs):
return click.option(*args, show_default=True, **kwargs)
或者,如果您想在单个选项装饰器中覆盖 show_default
:
def click_option(*args, **kwargs):
if not 'show_default' in kwargs:
kwargs.update({'show_default': True})
return click.option(*args, **kwargs)
测试代码:
import click
def click_option(*args, **kwargs):
if not 'show_default' in kwargs:
kwargs.update({'show_default': True})
return click.option(*args, **kwargs)
@click.command()
@click_option('--an-option', default='The Default')
def cli(an_option):
"""An Awesome CLI"""
if __name__ == "__main__":
cli(['--help'])
结果:
Usage: test.py [OPTIONS]
An Awesome CLI
Options:
--an-option TEXT [default: The Default]
--help Show this message and exit.
可能最适合的方法是更改 @click.command
装饰器中的上下文设置。像这样:
@click.command("cli", context_settings={'show_default': True})
@click.option("-x")
@click.option("-y", default="Custom Y")
@click.option("-z", default="Custom Z", help="Value of Z.")
def cli(x, y, z):
"""Test changin context settings"""
return "OK"
if __name__ == '__main__':
cli()
这将打印以下内容:
Usage: test.py [OPTIONS]
Test changing context settings
Options:
-x TEXT
-y TEXT [default: Custom Y]
-z TEXT Value of Z. [default: Custom Z]
--help Show this message and exit. [default: False]
在 Python 的 Click 包中,我可以为选项定义默认值:
@click.option("--count", default=1, help="Number of greetings.")
我可以指定帮助中显示默认值:
@click.option("--count", default=1, help="Number of greetings.", show_default=True)
如果我有很多选择
@click.option("--count-a", default=1, help="...")
@click.option("--count-b", default=2, help="...")
@click.option("--count-c", default=4, help="...")
.
.
.
我如何让 Click 一般地 总是 在帮助中显示默认值(没有明确地将 show_default=True
添加到每个单独选项的参数列表中)?
您可以很容易地定义自己的函数,例如:
代码
def click_option(*args, **kwargs):
return click.option(*args, show_default=True, **kwargs)
或者,如果您想在单个选项装饰器中覆盖 show_default
:
def click_option(*args, **kwargs):
if not 'show_default' in kwargs:
kwargs.update({'show_default': True})
return click.option(*args, **kwargs)
测试代码:
import click
def click_option(*args, **kwargs):
if not 'show_default' in kwargs:
kwargs.update({'show_default': True})
return click.option(*args, **kwargs)
@click.command()
@click_option('--an-option', default='The Default')
def cli(an_option):
"""An Awesome CLI"""
if __name__ == "__main__":
cli(['--help'])
结果:
Usage: test.py [OPTIONS]
An Awesome CLI
Options:
--an-option TEXT [default: The Default]
--help Show this message and exit.
可能最适合的方法是更改 @click.command
装饰器中的上下文设置。像这样:
@click.command("cli", context_settings={'show_default': True})
@click.option("-x")
@click.option("-y", default="Custom Y")
@click.option("-z", default="Custom Z", help="Value of Z.")
def cli(x, y, z):
"""Test changin context settings"""
return "OK"
if __name__ == '__main__':
cli()
这将打印以下内容:
Usage: test.py [OPTIONS]
Test changing context settings
Options:
-x TEXT
-y TEXT [default: Custom Y]
-z TEXT Value of Z. [default: Custom Z]
--help Show this message and exit. [default: False]