2015-01-10 6 views
7

Pythonプロジェクトのソースコードで、デフォルトの設定値を説明する辞書があります。辞書はかなり長いです。私はSphinxのマニュアルを「ソースの表示」以外の形式で表示して、人々がデフォルト値を素早く確認できるようにしたいと考えています。辞書データをSphinxドキュメントに表示

スフィンクスは、スフィンクスのオートドックと一緒に使用すると人間が判読できる形式の辞書に似た変数をフォーマットするオプションを提供していますか?私は現在、モジュール全体をダンプするために.. automodule::を使用しています。ドキュメントには長い文字列ダンプとして辞書を取得しています(改行なし、きれいな印刷、何でも)。

  • んスフィンクスは、利用可能な任意のかなりの印刷があり、個々のソースコードの変数の値

  • をプリントアウトするためのツールを提供し?

+0

@マリアナB。 - このリンクにより、権限拒否エラーが発生します。公共の代替手段はありますか? – Erve1879

+1

申し訳ありませんが、公開リンクが見つかりません。私は混乱を避けるためにコメントを削除しました。 –

答えて

5

これは(出力にきれいに印刷辞書を適切なディレクティブを書くことがはるかに良いでしょう)で最もエレガントな解決策ではないかもしれないが、これは今の作品:

は、カスタムのexecディレクティブを追加します。 (あなたのドキュメントでJavaScriptのコードブロックであなたの辞書を出力します

.. exec:: 
    import json 
    from some_module import some_dictionary 
    json_obj = json.dumps(some_dictionary, sort_keys=True, indent=4) 
    print '.. code-block:: JavaScript\n\n %s\n\n' % json_obj 

:あなたのスフィンクスの.confファイルにhereを与えられ、そして、あなたは辞書を印刷したい.rstファイルには、このような何かを行います私はdicをレンダリングする最良の方法であることが分かっていますドキュメント内の記念碑)。 .. literalinclude:: ../path-to-file/fruit.py :language: python :lines: 15- :linenos: 、あなたは以下となります。辞書の値は、次のように計算され、人間が読めるされていない場合

+0

最後の '{'括弧文字がコードブロックからレンダリングされています。どのようにこれを修正するための任意のアイデア? – jsmedmar

+0

コードブロック内の最後の{文字をレンダリングするには、json_obj = json_obj [: - 1] + "}"を追加するとよいでしょう。 – jsmedmar

3

FRUITS = { "Apple": "Red and Delicious", # note: eating too much orange make your hands orange "Orange": "A lot of vitamin C" } は、あなたが行うことができますあなたは15

その後、ライン#から始まるfruit.pyで定義された上記の辞書を持っていると言います人間が判読可能な価値+コメントなどを教えてください。

関連する問題