sphinx.ext.autosummary -- autodocのサマリーの生成

バージョン 0.6 で追加.

この拡張機能は、Epydocや他のAPIドキュメント生成ツールのような、関数、メソッド、属性のサマリーのリストを生成します。この機能は、作成中のシステムのdocstringが長く、詳細まで記述されていて、読みやすくするためにページを分けて出力されている場合に便利です。

sphinx.ext.autosummary は以下の2つの機能を持っています:

  1. ドキュメントが書かれた要素へのリンクと、docstringから抽出した短い概要の文を含んだサマリーのリストを生成する、 autosummary ディレクティブがあります。

  2. オプションで、 sphinx-autogen か、新しい autosummary_generate 設定値を autosummary ディレクティブに列挙されているエントリーに対する短い"スタブ"ファイルを生成するために使うこともできます。デフォルトでは、これらのファイルは sphinx.ext.autodoc ディレクティブにのみ含まれていますが、テンプレートでカスタマイズできます。

.. autosummary::

それぞれのアイテムごとに、ドキュメントされたアイテムとblurb(docstringの最初の文)を含むテーブルを挿入します。

The autosummary directive can also optionally serve as a toctree entry for the included items. Optionally, stub .rst files for these items can also be automatically generated when autosummary_generate is True.

サンプル:

.. currentmodule:: sphinx

.. autosummary::

   environment.BuildEnvironment
   util.relative_uri

これは以下のようなテーブルを作成します:

environment.BuildEnvironment(app)

ReSTファイルが翻訳される環境。

util.relative_uri(base, to)

base から to に対する相対URL。

autosummaryは、 autodoc が行っているのと同様に、 autodoc-process-docstring イベントと、 autodoc-process-signature イベントをフックすることで、 docstringとシグニチャの前処理を行います。

オプション

  • autosummary テーブルを toctree のエントリーと同様に提供したい場合には、toctree オプションを使って以下のようにします:

    .. autosummary::
       :toctree: DIRNAME
    
       sphinx.environment.BuildEnvironment
       sphinx.util.relative_uri
    

    toctree オプションは、このディレクティブに含まれるエントリーのリストに対するスタブのページを作成する、 sphinx-autogen スクリプトにも伝えられます。このオプションは、ディレクトリ名を引数として受け取ります。デフォルトでは sphinx-autogen はこのディレクトリに出力します。もしも引数が与えられなかった場合には、そのディレクティブが含まれているファイルがある、同じディレクトリに出力します。

    You can also use caption option to give a caption to the toctree.

    バージョン 3.1 で追加: caption option added.

  • 関数のシグネチャを、 autosummary が出力するリストの中に入れたくない場合には、 nosignatures オプションを設定します:

    .. autosummary::
       :nosignatures:
    
       sphinx.environment.BuildEnvironment
       sphinx.util.relative_uri
    
  • template オプションを使用することで、カスタムのテンプレートを指定できます

    .. autosummary::
       :template: mytemplate.rst
    
       sphinx.environment.BuildEnvironment
    

    このサンプルのコードをビルドすると、 templates_path に含まれる、 mytemplate.rst という名前のテンプレートファイルを使用して、エントリーのすべてのリストのページを生成します。詳しくは テンプレートのカスタマイズ を参照してください。

    バージョン 1.0 で追加.

  • You can specify the recursive option to generate documents for modules and sub-packages recursively. It defaults to disabled. For example,

    .. autosummary::
       :recursive:
    
       sphinx.environment.BuildEnvironment
    

    バージョン 3.1 で追加.

sphinx-autogen -- autodocのスタブページを生成

sphinx-autogen スクリプトは autosummary にリストアップされた要素のためのドキュメントページのスタブを簡単に生成するのに使用されます。

以下のようにコマンドを起動したとします:

$ sphinx-autogen -o generated *.rst

このコマンドを実行すると、 *.rst にマッチして、なおかつ :toctree: オプションを持つすべてのファイルを読み込み、その中に定義されているすべての autosummary テーブルを読み込みます。読み込んだ後はすべてのドキュメント付けされた要素に関連するスタブページを generated ディレクトリに出力します。デフォルトでは、以下のようなテキストを含むページが生成されます:

sphinx.util.relative_uri
========================

.. autofunction:: sphinx.util.relative_uri

もしも -o オプションが指定されなかった場合には、 :toctree: オプションで設定されたディレクトリにファイルを出力します。

For more information, refer to the sphinx-autogen documentation

スタブページの自動作成

If you do not want to create stub pages with sphinx-autogen, you can also use these config values:

autosummary_context

A dictionary of values to pass into the template engine's context for autosummary stubs files.

バージョン 3.1 で追加.

autosummary_generate

Boolean indicating whether to scan all found documents for autosummary directives, and to generate stub pages for each. It is disabled by default.

スタブページを作成すべきドキュメントをリスト表示するのにも使えます。

ディレクティブの :toctree: オプションで指定されたディレクトリに新しいファイルを配置します。

バージョン 2.3 で変更: Emits autodoc-skip-member event as autodoc does.

autosummary_generate_overwrite

If true, autosummary overwrites existing files by generated stub pages. Defaults to true (enabled).

バージョン 3.0 で追加.

autosummary_mock_imports

This value contains a list of modules to be mocked up. See autodoc_mock_imports for more details. It defaults to autodoc_mock_imports.

バージョン 2.0 で追加.

autosummary_imported_members

A boolean flag indicating whether to document classes and functions imported in modules. Default is False

バージョン 2.1 で追加.

autosummary_filename_map

A dict mapping object names to filenames. This is necessary to avoid filename conflicts where multiple objects have names that are indistinguishable when case is ignored, on file systems where filenames are case-insensitive.

バージョン 3.2 で追加.

テンプレートのカスタマイズ

バージョン 1.0 で追加.

テンプレート のセクションで説明しているのと同じ、Sphinxの標準的なHTMLのJinjaテンプレートを使って、スタブページのテンプレートをカスタマイズできます。ただし、 TemplateBridge はサポートしていません。

注釈

もしも、スタブのテンプレートをカスタマイズするのに長い時間をかけているということが分かった場合には、autosummaryによる自動生成をやめて、自分でスタブを書いていく方がいいかもしれません。

autosummaryは以下に示すJinjaのテンプレートファイルを使用します:

  • autosummary/base.rst -- 代替のテンプレート

  • autosummary/module.rst -- モジュールのためのテンプレート

  • autosummary/class.rst -- クラスのためのテンプレート

  • autosummary/function.rst -- 関数のためのテンプレート

  • autosummary/attribute.rst -- クラス属性のためのテンプレート

  • autosummary/method.rst -- クラスメソッドのためのテンプレート

テンプレートの中では以下の変数名が利用可能です:

name

ドキュメントの対象となっているオブジェクトの名前です。モジュールなやクラス名の部分は含まれません。

objname

ドキュメント対象となっているオブジェクトの名前です。モジュール名の部分は含まれません。

fullname

ドキュメント対象となっているオブジェクトの名前です。モジュール名、クラス名も含みます。

module

ドキュメント対象のオブジェクトが属しているモジュールの名前です。

class

ドキュメント対象のオブジェクトが属すクラスの名前です。メソッドと属性が対象の場合だけ利用できます。

underline

A string containing len(full_name) * '='. Use the underline filter instead.

members

モジュールやクラスに属す、すべてのメンバーの名前のリストです。モジュールとクラスが対象の場合のみ利用できます。

inherited_members

List containing names of all inherited members of class. Only available for classes.

バージョン 1.8.0 で追加.

functions

モジュールの"公開"関数の名前を含むリストです。ここでの"公開"は、名前の最初の文字がアンダースコア以外のものを意味しています。対象がモジュールの場合のみ利用できます。

classes

モジュールの"公開"クラスの名前を含むリストです。対象がモジュールの場合のみ利用できます。

exceptions

モジュールの"公開"例外クラスの名前を含むリストです。対象がモジュールの場合のみ利用できます。

methods

クラスの"公開"メソッドの名前を含むリストです。対象がクラスの場合のみ利用できます。

attributes

クラス/モジュールの"公開"属性の名前を含むリストです。対象がクラスとモジュールの場合のみ利用できます。

バージョン 3.1 で変更: Attributes of modules are supported.

modules

List containing names of "public" modules in the package. Only available for modules that are packages.

バージョン 3.1 で追加.

Additionally, the following filters are available

escape(s)

Escape any special characters in the text to be used in formatting RST contexts. For instance, this prevents asterisks making things bold. This replaces the builtin Jinja escape filter that does html-escaping.

underline(s, line='=')

Add a title underline to a piece of text.

For instance, {{ fullname | escape | underline }} should be used to produce the title of a page.

注釈

autosummary ディレクティブは、スタブページの中でも使用できます。スタブページは、これらのディレクティブを元に生成されます。