15

モジュールのドキュメント化に Sphinx の autodoc 拡張機能を使用しています。ドキュメント出力でモジュールのメンバーのフラットリストを取得したいと考えています。

私は以下を使用してみました:

.. automodule:: modname
   :members:

ただし、これには 2 つの問題があります。

  1. モジュールの docstring が含まれていますが、ここでは不要です。

  2. 各エントリの名前には "modname." という接頭辞が付いていますが、これは完全に冗長です (このページはこのモジュールを説明するためのものであるため)。

ただし、すべてのモジュール メンバーの自動リストを取得しながら、これら 2 つの側面を選択的に無効にする構成オプションを見つけることができませんでした。

私の現在の計画は、 autofunction (など) を使用して、文書化するメンバーを明示的に列挙することですが、最初に望んでいたことを達成する簡単な方法を見逃していないかどうかを知りたいです。

更新:少なくとも 2 番目の部分の回避策を見つけました: set add_module_names=Falsein conf.py. ただし、これはグローバル設定であるため、元の質問には実際には答えません。

4

1 に答える 1

4

同様の質問に対するこの回答autodoc-process-docstringを見ると、イベントを使用してモジュールからドキュメント文字列を削除し、次のコードを に追加できることがわかりましたconf.py

def skip_modules_docstring(app, what, name, obj, options, lines):
    if what == 'module':
        del lines[:]

def setup(app):
    app.connect('autodoc-process-docstring', skip_modules_docstring)

delドキュメントによると、変更はその場で行われなければならないため、ステートメントが必要であることに注意してくださいlines(新しいオブジェクトを作成すると、機能しません)。

最後にname、いくつかのモジュールの docstring をフィルタリングしながら、他のモジュールの docstring を保持するために を使用することもできます。

于 2011-12-07T13:08:39.093 に答える