1
通常、manで利用可能な長いドキュメントは直接画面に表示されませんがless(例えばman lsなど)にリダイレクトされます。docopt --helpオプションをlessにリダイレクトすることはできますか?
これは、pythonでdocoptモジュールを使用する方法ですか?
通常、manで利用可能な長いドキュメントは直接画面に表示されませんがless(例えばman lsなど)にリダイレクトされます。docopt --helpオプションをlessにリダイレクトすることはできますか?
これは、pythonでdocoptモジュールを使用する方法ですか?
は公式方法はありませんが、あなたはこれを行うことができます。
"""
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。
upvoteの代理人は不十分ですが、あなたの答えとその説明は私が探していたものです。どうもありがとう! – Liad
@Liad心配する必要はありません、あなたはすぐに代理人を得るでしょう。楽しむ! – matsjoyce