2017-01-26 4 views

答えて

2

公式方法はありませんが、あなたはこれを行うことができます。

""" 
Usage: 
    docopt_hack.py 
""" 

import docopt, sys, pydoc 

def extras(help, version, options, doc): 
    if help and any((o.name in ('-h', '--help')) and o.value for o in options): 
     pydoc.pager(doc.strip("\n")) 
     sys.exit() 
    if version and any(o.name == '--version' and o.value for o in options): 
     print(version) 
     sys.exit() 

docopt.extras = extras 

# Do your normal call here, but make sure it is after the previous lines 
docopt.docopt(__doc__, version="0.1") 

は、私たちがやっていることは、通常のdocopt(https://github.com/docopt/docopt/blob/master/docopt.py#L476-L482)のヘルプの印刷を扱うextras機能をオーバーライドします。次に、pydocを使用して入力をページャー(https://stackoverflow.com/a/18234081/3946766)にプッシュします。 pydocの使用は安全ではないショートカットであることに注意してください。メソッドは文書化されておらず、削除することができるからです。 extrasも同様です。 YMMV。

+0

upvoteの代理人は不十分ですが、あなたの答えとその説明は私が探していたものです。どうもありがとう! – Liad

+0

@Liad心配する必要はありません、あなたはすぐに代理人を得るでしょう。楽しむ! – matsjoyce

関連する問題