New in version 0.6.
この拡張機能は、Epydocや他のAPIドキュメント生成ツールのような、関数、メソッド、属性のサマリーのリストを生成します。この機能は、作成中のシステムのdocstringが長く、詳細まで記述されていて、読みやすくするためにページを分けて出力されている場合に便利です。
sphinx.ext.autosummary は以下の2つの機能を持っています:
ドキュメントされている項目へのリンクを含むテーブルを挿入します。この中には、それぞれに対するサマリー文(docstringの最初の文)も含まれます。 autosummary ディレクティブはおまけとして、含まれている項目への toctree のような働きもします。
サンプル:
.. currentmodule:: sphinx
.. autosummary::
environment.BuildEnvironment
util.relative_uri
これは以下のようなテーブルを作成します:
.. currentmodule:: sphinx
.. autosummary::
environment.BuildEnvironment
util.relative_uri
.. currentmodule:: sphinx.ext.autosummary
autosummaryは、 autodoc が行っているのと同様に、 autodoc-process-docstring イベントと、 autodoc-process-signature イベントをフックすることで、 docstringとシグニチャの前処理を行います。
オプション
autosummary テーブルを toctree のエントリーと同様に提供したい場合には、以下のようにします:
.. autosummary::
:toctree: ディレクトリ名
sphinx.environment.BuildEnvironment
sphinx.util.relative_uri
toctree オプションは、このディレクティブに含まれるエントリーのリストに対するスタブのページを作成する、 sphinx-autogen スクリプトにも伝えられます。このオプションは、ディレクトリ名を引数として受け取ります。デフォルトでは sphinx-autogen はこのディレクトリに出力します。もしも引数が与えられなかった場合には、そのディレクティブが含まれているファイルがある、同じディレクトリに出力します。
関数のシグネチャを、:rst:dir:autosummary が出力するリストの中に入れたくない場合には、 nosignatures オプションを設定します:
.. autosummary::
:nosignatures:
sphinx.environment.BuildEnvironment
sphinx.util.relative_uri
template オプションを使用することで、カスタムのテンプレートを指定することができます
サンプル:
.. autosummary::
:template: mytemplate.rst
sphinx.environment.BuildEnvironment
このサンプルのコードをビルドすると、 templates_path に含まれる、 mytemplate.rst という名前のテンプレートファイルを使用して、エントリーのすべてのリストのページを生成します。詳しくは テンプレートのカスタマイズ を参照してください。
New in version 1.0.
sphinx-autogen スクリプトは autosummary にリストアップされた要素のためのドキュメントページのスタブを簡単に生成するのに使用されます。
以下のようにコマンドを起動したとします:
$ sphinx-autogen -o generated *.rst
このコマンドを実行すると、 *.rst にマッチして、なおかつ :toctree: オプションを持つすべてのファイルを読み込み、その中に定義されているすべての autosummary テーブルを読み込みます。読み込んだ後はすべてのドキュメント付けされた要素に関連するスタブページを generated ディレクトリに出力します。デフォルトでは、以下のようなテキストを含むページが生成されます:
sphinx.util.relative_uri
========================
.. autofunction:: sphinx.util.relative_uri
もしも -o オプションが指定されなかった場合には、 :toctree: オプションで設定されたディレクトリにファイルを出力します。
ブーリアン値で、autosummaryディレクティブのために書かれたドキュメントをすべてスキャン して、それぞれのスタブページを作成するかどうか決定します。
スタブページを作成すべきドキュメントをリスト表示するのにも使用することができます。
ディレクティブの :toctree: オプションで指定されたディレクトリに新しいファイルを配置します。
New in version 1.0.
テンプレート のセクションで説明しているのと同じ、Sphinxの標準的なHTMLのJinjaテンプレートを使って、スタブページのテンプレートをカスタマイズすることができます。ただし、 TemplateBridge はサポートしていません。
Note
もしも、スタブのテンプレートをカスタマイズするのに長い時間をかけているということが分かった場合には、autosummaryによる自動生成をやめて、自分でスタブを書いていく方がいいかもしれません。
autosummaryは以下のテンプレートファイルを使用します:
テンプレートの中では以下の変数名が利用可能です:
ドキュメントの対象となっているオブジェクトの名前です。モジュールなやクラス名の部分は含まれません。
ドキュメント対象となっているオブジェクトの名前です。モジュール名の部分は含まれません。
ドキュメント対象となっているオブジェクトの名前です。モジュール名、クラス名も含みます。
ドキュメント対象のオブジェクトが属しているモジュールの名前です。
ドキュメント対象のオブジェクトが属すクラスの名前です。メソッドと属性が対象の場合だけ利用できます。
len(full_name) * '=' の実行結果です。
モジュールやクラスに属す、すべてのメンバーの名前のリストです。モジュールとクラスが対象の場合のみ利用できます。
モジュールの”公開”関数の名前を含むリストです。ここでの”公開”は、名前の最初の文字がアンダースコア以外のものを意味しています。対象がモジュールの場合のみ利用できます。
モジュールの”公開”クラスの名前を含むリストです。対象がモジュールの場合のみ利用できます。
モジュールの”公開”例外クラスの名前を含むリストです。対象がモジュールの場合のみ利用できます。
クラスの”公開”メソッドの名前を含むリストです。対象がクラスの場合のみ利用できます。
クラスの”公開”属性の名前を含むリストです。対象がクラスの場合のみ利用できます。
Note
autosummay ディレクティブは、スタブページの中でも使用することができます。スタブページは、これらのディレクティブを元に生成されます。