2017-05-23 38 views
2

我使用click本地模塊內,我想調整如何幫助顯示:HelpFormatter在點擊

目前輸出與--help

Usage: __main__.py [OPTIONS] COMMAND [ARGS]... 

Options: 
    --help Show this message and exit. 

Commands: 
    foo  Foo is a program very nice and pretty... 

默認情況下,prog名稱爲__main__.py和文本被修剪爲78個字符。

我發現這可以使用HelpFormatter類進行調整。但我不知道如何在這種情況下使用它。

目前代碼:

import click 

@click.group() 
def main(ctx): 
    pass 

@main.command() 
def foo(): 
    pass 

click.CommandCollection(sources=[main])() 

預期輸出:

Usage: my_module_name [OPTIONS] COMMAND [ARGS]... 

Options: 
    --help Show this message and exit. 

Commands: 
    foo  Foo is a program very nice and pretty and this sentence is very long. 
+1

你能舉個你在做什麼之後的例子,機器人h代碼和你希望幫助的樣子是什麼? –

+0

我添加了預期的輸出 – nowox

回答

2

如果你正試圖避免的幫助字符串截斷,這可以通過該short_help參數來實現。 short_help一般來自help但截斷。如果顯式傳遞,則會顯示整個字符串。

要顯示的字符串my_module_name,可在參數下通過prog_name

測試代碼:的short_help

import click 

@click.group() 
def main(ctx): 
    pass 

@main.command(short_help='Foo is a program very nice and pretty and ' 
         'this sentence is very long.') 
def foo(): 
    pass 

main(['--help'], prog_name='my_module_name') 

結果:

Usage: my_module_name [OPTIONS] COMMAND [ARGS]... 

Options: 
    --help Show this message and exit. 

Commands: 
    foo Foo is a program very nice and pretty and this sentence is very long. 
+0

那麼我的'_main __。py'呢? – nowox

+0

你剛剛發佈的測試代碼是否得到了該行爲?因爲我沒有看到。 –

+0

只要我把你的代碼放在'test.py'文件中。但是如果你把它放到'foo/__ main __。py'文件中,並且你做了'PYTHONPATH =。 python -m foo --help'你會看到'__main __。py'而不是'test.py' ... – nowox