2016-02-26 57 views
1

我刚开始使用python click模块,我希望自动调出'--help'函数,随时点击引发错误。python点击返回帮助菜单

test.py

@click.command() 
@click.option('--count', default=1, help='Number of greetings.') 
@click.option('--name', default=Adam, 
       help='The person to great.') 
def test(name): 
    print name 

如果我是运行在命令行test.py --no_such_thing脚本。有没有一种方法我能得到--help上来,而不是正常的 :错误没有选项如果你使用点击4.0+ --no_such_thing

回答

0

,您可以禁用自动错误处理使用Context.ignore_unknown_options未知选项和Context.allow_extra_args

import click 

@click.command(context_settings={ 
    'allow_extra_args': True, 
    'ignore_unknown_options': True, 
}) 
@click.pass_context 
def hello(ctx): 
    if ctx.args: 
     print(hello.get_help(ctx)) 

if __name__ == "__main__": 
    hello() 

在这种情况下,您的命令将获得其余的参数在ctx.args列表。缺点是你需要自己处理错误,否则程序会自动失败。

更多信息可在Forwarding Unknown Options部分的文档中找到。

1

总之,您需要修改方法click.exceptions.UsageError.show。 但是,我已在answer to this SO post中发布了对此问题的更深入的解答以及示例代码。