2012-06-04 5 views
22

私はPythonパッケージを構築しており、Sphinxを使ってドキュメントを作成しています。私のパッケージコードとは別に、argparseを使った多くのコマンドラインPythonスクリプトも含まれています。スフィンクスにこれらのスクリプトを自動文書化する方法があるかどうか疑問に思っていましたか?最終的な目標は、関連するヘルプの印刷、議論、およびオプションを含む、スクリプトのかなり印刷されたリストです。そして明確にするために、私は自分自身でこれを実装する方法ではなく、これを行う既存の方法を探しています。Sphinxとargparse - コマンドラインスクリプトのオートドキュメント?

私は通常S.O.に質問しているように、より適切なS.E.この質問を投稿するサイト、私に教えてください。ありがとう。

+0

無関係使用していますが、役に立つかもしれません。 PyPIのplacパッケージをチェックしてください。 –

+0

それは私にこれを助けてくれるとは思わないが、興味深いことに、ヘッドアップのおかげです。 – jeremiahbuddha

答えて

16

sphinxcontrib.programoutputを使用して、ドキュメントにコマンドラインからのヘルプメッセージを含めることができます。

これは​​に固有のものではありませんが、スクリプト印刷ヘルプメッセージをコマンドラインに記録するために使用できます。

16

使用スフィンクス、argparse拡張子:あなたはsphinxcontrib.autoprogramを使用することができます

http://sphinx-argparse.readthedocs.org/en/latest/

+1

優れています。 「用途」ブロックの扱い方を変える方法はありますか?私にとって、それを文字通りのブロックとして持っているのはまあまあです。 – orome

+1

そして私がそれをしている間、 '.. option ::'が生成するものと一致するオプションの出力がうまくいくでしょう:フラグのみ(デフォルトは指定されていません)、記述のインデントが少なくても左に並んでいます最初の文字を大文字に変更し、最後にピリオドを追加します( '--help'のイディオムはこれらを省略し、すべて小文字を使用するためです)。また、すべてのテキストがその文脈で書かれているので、ヘルプヘルプの出力と一致する項目にフラグを立てることもあります(例えば、 'cols'ではなく' -cols [COL [COL ...]] ')。 – orome

+0

エラーが発生しました:http://pastebin.com/jXAz1qHw –

2

pip install sphinxcontrib-autoprogramは、その後、あなたのconf.py

extensions += ['sphinxcontrib.autoprogram'] 

を置きます。 (機能get_parser()のように、Pythonの式を指定できます)argparse parserオブジェクトparsercliをインポートすることで、コマンドcli.pyを文書化するには、

.. autoprogram:: cli:parser 
    :prog: cli.py 
関連する問題