2013-03-21 77 views
0

我有三個參數:--a --b --c,我希望我的命令至少接受它們,但是a/b/c的所有組合都是有效的。 E.g:Docopt - 需要一個或多個選項

command.py --a 
command.py --a --b 
command.py --a --b --c 
... 

但並非沒有爭論:

command.py 

謝謝!

回答

1

我希望我的命令接受至少他們的

你可以做到以下幾點:

>>> from docopt import docopt 
>>> u = '''usage: command.py --a [--b --c] 
...    command.py --b [--a --c] 
...    command.py --c [--a --b]''' 
>>> docopt(u, ['--a']) 
{'--a': True, 
'--b': False, 
'--c': False} 
>>> docopt(u, ['--b']) 
{'--a': False, 
'--b': True, 
'--c': False} 
>>> docopt(u, ['--c']) 
{'--a': False, 
'--b': False, 
'--c': True} 
>>> docopt(u, []) 
usage: command.py --a [--b --c] 
     command.py --b [--a --c] 
     command.py --c [--a --b] 

雖然這可能不是最用戶友好的命令行界面。也許,你可以更詳細地解釋你的接口,我可以告訴你如何實現它(可能不僅有選項,而且還有命令和位置參數)。

相關問題