sphinx.ext.autodoc
--文書文字列を含む文書¶
この拡張は、あなたが記録しているモジュールを導入し、文書文字列から半自動的に文書を引き込むことができます。
注釈
Sphinx(実際にはSphinxを実行するPythonインタプリタ)にあなたのモジュールを見つけるためには、導入可能でなければなりません。これはモジュールまたはパッケージが上のあるディレクトリに位置しなければならないことを意味します sys.path
--調整します。 sys.path
それに応じてプロファイル内にあります。
警告
autodoc
imports the modules to be documented. If any
modules have side effects on import, these will be executed by autodoc
when sphinx-build
is run.
スクリプト(ライブラリモジュールとは反対)を記録した場合、メインルーチンが受けることを確認してください if __name__ == '__main__'
条件
もちろん,これを実現するためには,文書文字列を正しいreStrutiredTextで書かなければならない.そして、文書文字列では、文書で正しく終了するすべての一般的なSphinxタグを使用することができます。この技術は,手書き文書とともに,文書の2つの位置を維持しなければならない苦痛を軽減し,自動生成された純API文書を回避している.
もしあなたが好きなら NumPy あるいは…。 Google 文書文字列パターンを上書きreStrufredTextに設定すれば,有効にすることもできる napoleon
延期する。 napoleon
文書文字列を以前の正しいreStruredTextに変換することができるプリプロセッサです autodoc
処理しています
指令¶
autodoc
provides several directives that are versions of the usual
py:module
, py:class
and so forth. On parsing time, they
import the corresponding module and extract the docstring of the given objects,
inserting them into the page source under a suitable py:module
,
py:class
etc. directive.
注釈
Just as py:class
respects the current py:module
,
autoclass
will also do so. Likewise, automethod
will
respect the current py:class
.
-
.. automodule::
¶ -
.. autoclass::
¶ -
.. autoexception::
¶ モジュール、クラス、または異常を記録する。デフォルトの場合、すべての3つのコマンドは、オブジェクト自体の文書文字列のみを挿入します:
.. autoclass:: Noodle
以下のソースコードが生成される:
.. class:: Noodle Noodle's docstring.
Auto“命令は、文書文字列の後(ただし、任意の自動メンバ文書の前に)生成された非自動命令ソースに挿入される自身のコンテンツを含むこともできる。
したがって、以下のように、自動メンバー文書と非自動メンバー文書を混合して使用することもできます。
.. autoclass:: Noodle :members: eat, slurp .. method:: boil(time=10) Boil the noodle *time* minutes.
選択肢と高度な使い方
メンバーを自動的に記録したいなら、1つあります
members
オプション::.. automodule:: noodle :members:
すべてのモジュールメンバ(再帰)が記録され、:
.. autoclass:: Noodle :members:
すべての非プライベートメンバ関数および属性(すなわち、名前が最初でない関数および属性が記録される
_
)。モジュールでは
__all__
メンバーを探す時には尊重されますignore-module-all
マークオプション。なしignore-module-all
メンバーの順番も__all__
それがそうです。あなたはまた明確なメンバーリストを提供することができます。これらのメンバーだけが記録されます。
.. autoclass:: Noodle :members: eat, slurp
もしあなたが
members
オプション(または以下に説明する他のオプション)はデフォルト値ですので、参照されたいautodoc_default_options
それがそうです。ちなみに
否定的な形で
'no-{flag}'
Autodoc命令の一つのオプションとして、それを一時的に無効にします。例えば:.. automodule:: foo :no-undoc-members:
文書文字列のないメンバーは無視されます
undoc-members
フラグオプション::.. automodule:: noodle :members: :undoc-members:
“個人”のメンバー(すなわち“個人”と命名されたもの
_private
あるいは…。__private
)は含まれていますprivate-members
マークオプションを与えました:.. automodule:: noodle :members: :private-members:
パラメータとして記録される明示的なメンバ名リストを使用することもできる:
.. automodule:: noodle :members: :private-members: _spicy, _garlickly
バージョン 1.1 で追加.
バージョン 3.2 で変更: このオプションは今パラメータを受け取ることができます。
メンバの文書文字列が含まれていれば
:meta private:
その中で 情報フィールドリスト それがそうです。例:def my_function(my_arg, my_other_arg): """blah blah blah :meta private: """
バージョン 3.0 で追加.
メンバの文書文字列が含まれていれば
:meta public:
その中で 情報フィールドリスト 次の線で先頭に立っていても例:def _my_function(my_arg, my_other_arg): """blah blah blah :meta public: """
バージョン 3.1 で追加.
変数メンバの文書文字列が含まれていれば
:meta hide-value:
その中で 情報フィールドリスト それがそうです。例:var1 = None #: :meta hide-value:
バージョン 3.5 で追加.
Python“特別な”メンバー(すなわち名前は
__special__
)は含まれていますspecial-members
マークオプションを与えました:.. autoclass:: my.Class :members: :private-members: :special-members:
クラスの“プライベート”と“特殊”のメンバーを記録する。
バージョン 1.1 で追加.
バージョン 1.2 で変更: このオプションは現在パラメータ,すなわち記録する特殊なメンバを受け取ることができる.
クラスや例外については,すべてのメンバを記録する際には,与えられない限り,基本クラスから継承されたメンバは省略する.
inherited-members
選択肢は、それを除いてmembers
**.. autoclass:: Noodle :members: :inherited-members:
これは
undoc-members
記録するには、以下の操作を実行してください all クラスまたはモジュールの利用可能なメンバ。それは先祖類がそれから継承された会員たちを記録しないようにすることができる。デフォルトの場合、
object
クラスには文書記録がない.すべての人に見せるためにはNone
オプションに追加します。例えばあなたのクラスが
Foo
派生自.list
クラス、そしてあなたは記録したくありませんlist.__len__()
オプションを指定する必要があります:inherited-members: list
Listクラスの特殊なメンバを避けるために。Another example; If your class Foo has
__str__
special method and autodoc directive has bothinherited-members
andspecial-members
,__str__
will be documented as in the past, but other special method that are not implemented in your classFoo
.なお、継承されたメンバがその文書文字列からRESTフォーマットのモジュールでない場合、これはタグ付け誤りを招く。
バージョン 0.3 で追加.
バージョン 3.0 で変更: これは祖先クラス名をパラメータとしている.
従来の構文を使用して、明示的に記録された呼び出し可能なオブジェクト(関数、方法、クラス)の署名をカバーすることができ、この構文は、リフレクションから取得された署名をカバーする。
.. autoclass:: Noodle(type) .. automethod:: eat(persona)
この方法からの署名が装飾子によって隠されている場合、これは有用である。
バージョン 0.4 で追加.
The
automodule
,autoclass
andautoexception
directives also support a flag option calledshow-inheritance
. When given, a list of base classes will be inserted just below the class signature (when used withautomodule
, this will be inserted for every class that is documented in the module).バージョン 0.4 で追加.
すべてのautocコマンドはサポートされています
noindex
標準と同じ効果を持つマークオプションpy:function
等コマンド:レコードのオブジェクト(およびすべての自動レコードのメンバ)にインデックス項目を生成しない.バージョン 0.4 で追加.
automodule
also recognizes thesynopsis
,platform
anddeprecated
options that the standardpy:module
directive supports.バージョン 0.5 で追加.
automodule
そしてautoclass
一つもありますmember-order
書き換えに使用可能なオプションautodoc_member_order
指示は一つしかありません。バージョン 0.6 で追加.
メンバー文書をサポートするコマンドもあります
exclude-members
すべてのメンバを記録する場合、オプションは、文書から単一のメンバ名を除外するために使用されてもよい。バージョン 0.6 で追加.
ある
automodule
指令とmembers
オプションセット、そのモジュールメンバのみ__module__
属性は与えられたモジュール名と同じであるautomodule
記録されていますこれは,導入したクラスや関数の文書記述を防ぐためである.設けるimported-members
この行動を防止してすべての利用可能なメンバーを記録する場合は、このオプションを選択してください。導入モジュールには属性文書が現在のモジュールのソースファイルを解析することで発見されるため,導入モジュールには属性は記録されないことに注意されたい.バージョン 1.2 で追加.
モジュールリストの追加
autodoc_mock_imports
生成時に何らかの外部依存項が導入不可能な場合に生成過程を停止するように,導入誤りを防ぐ.バージョン 1.3 で追加.
Autoc拡張へのヒントとして、
::
モジュール名とオブジェクト名の間のセパレータは,モジュール名が明確でない場合にautocに正しいモジュール名を知ってもらうためである.**.. autoclass:: module.name::Noodle
-
.. autofunction::
¶ -
.. autodecorator::
¶ -
.. autodata::
¶ -
.. automethod::
¶ -
.. autoattribute::
¶ 彼らの動作原理は
autoclass
など,自動メンバ文書のためのオプションは提供されていない.autodata
そしてautoattribute
支持する.annotation
選択します。このオプションは変数値の表示方式を制御する.パラメータがない場合に指定された場合、変数の名前のみが印刷され、その値は表示されない:.. autodata:: CD_DRIVE :annotation:
オプションがパラメータを指定した場合、変数としての値を名前の後に印刷する:
.. autodata:: CD_DRIVE :annotation: = your CD device name
デフォルトの場合、なければ
annotation
オプションの場合、Sphinxは変数の値を取得し、名前の後に印刷しようと試みる。♪the
no-value
選択肢は空白の代わりに使うことができますannotation
値を表示せずにタイプ提示を表示するには、以下の操作を実行してください。.. autodata:: CD_DRIVE :no-value:
もしこの2つが
annotation
そしてno-value
オプションを使用して、no-value
効果がありません。モジュールデータのメンバやクラス属性については,文書を特殊なフォーマットのアノテーションに入れることができる(使用する).
#:
コメントを始めるだけでなく#
)、または文書文字列で その後 定義する。注釈は自分の行にある必要がある その前に 定義や代入の直後に 同じ線の上で それがそうです。後者の形式は1行に限定される.これは,以下のクラス定義において,すべての属性を自動的に記録できることを意味する.
class Foo: """Docstring for class Foo.""" #: Doc comment for class attribute Foo.bar. #: It can have multiple lines. bar = 1 flox = 1.5 #: Doc comment for Foo.flox. One line only. baz = 2 """Docstring for class attribute Foo.baz.""" def __init__(self): #: Doc comment for instance attribute qux. self.qux = 3 self.spam = 4 """Docstring for instance attribute spam."""
バージョン 0.6 で変更:
autodata
そしてautoattribute
今は文書文字列を抽出することができる.バージョン 1.1 で変更: 現在,割当て後の同一行で備考文書を使用することを許可している.
バージョン 1.2 で変更:
autodata
そしてautoattribute
Vbl.あるannotation
選択します。バージョン 2.0 で変更:
autodecorator
入れました。バージョン 3.4 で変更:
autodata
そしてautoattribute
今は1つありますno-value
選択します。注釈
修飾関数や方法を記録する場合は、autocはモジュールを導入して検査することを覚えてください
__doc__
関数またはメソッドの属性を与える.これは装飾器が他の装飾関数で装飾関数を置き換えると、元のものをコピーしなければならないことを意味します。__doc__
新しい機能です。
配置¶
また、以下の構成値を設定することができます。
-
autoclass_content
¶ この値は,どのような内容を挿入するかを選択する.
autoclass
指令する。可能な値は:"class"
クラスの文書文字列のみを挿入する.これはデフォルト設定です。あなたはまだ記録することができます
__init__
単独の方法として使用するautomethod
あるいは…。members
選択権.autoclass
それがそうです。"both"
クラスの学生と
__init__
メソッドの文書文字列を連結して挿入する."init"
唯
__init__
メソッドの文書文字列が挿入される.
バージョン 0.3 で追加.
類がなければ
__init__
方法、あるいは__init__
方法のdocstringは空であるが,このようなものは__new__
メソッドの文書文字列は,それに変更する.バージョン 1.4 で追加.
-
autodoc_member_order
¶ この値は,自動記録されたメンバがアルファベット順にソートされるかどうかを選択する(値
'alphabetical'
)、メンバータイプ別(値)'groupwise'
)またはソース順(値)'bysource'
)。デフォルト値はアルファベット順である.ソースコード順序については、モジュールはソースコードを含むPythonモジュールでなければならないことに注意されたい。
バージョン 0.6 で追加.
バージョン 1.0 で変更: 支持する.
'bysource'
それがそうです。
-
autodoc_default_flags
¶ This value is a list of autodoc directive flags that should be automatically applied to all autodoc directives. The supported flags are
'members'
,'undoc-members'
,'private-members'
,'special-members'
,'inherited-members'
,'show-inheritance'
,'ignore-module-all'
and'exclude-members'
.バージョン 1.0 で追加.
バージョン 1.8 で非推奨: 統合して
autodoc_default_options
それがそうです。
-
autodoc_default_options
¶ Autodocコマンドのデフォルトオプション。これらは自動的にすべてのautoc命令に適用される.それはオプション名を値にマッピングする辞書でなければならない。例えば:
autodoc_default_options = { 'members': 'var1, var2', 'member-order': 'bysource', 'special-members': '__init__', 'undoc-members': True, 'exclude-members': '__weakref__' }
設ける
None
あるいは…。True
この値に設定することは、命令にのみオプション名を提供することに等価である。The supported options are
'members'
,'member-order'
,'undoc-members'
,'private-members'
,'special-members'
,'inherited-members'
,'show-inheritance'
,'ignore-module-all'
,'imported-members'
and'exclude-members'
.バージョン 1.8 で追加.
バージョン 2.0 で変更: 受け入れる
True
一つの価値として。バージョン 2.1 で変更: 増列する.
'imported-members'
それがそうです。
-
autodoc_docstring_signature
¶ Cモジュールから導入された関数をリフレクションできないため,このような関数の署名を自動的に決定することはできない.しかし,関数文書文字列の1行目に署名を置くことはよく用いられる約束である.
このブール値を設定すれば
True
(これはデフォルト設定である)、autocは、署名のように見える場合、その行を署名として使用し、文書文字列の内容から削除するために、文書文字列の第1の行を参照する。署名行が逆スラッシュで終わると、autocは、この関数に複数の署名があると考え、文書文字列の次の行を見る。これは再負荷関数に非常に有用である.
バージョン 1.1 で追加.
バージョン 3.1 で変更: 再ロード署名をサポートします
-
autodoc_mock_imports
¶ この値はシミュレーションするモジュールリストを含む.これは,ある外部依存項が構築時に構築過程を満たして中断できない場合に有用である.依存項自体のルートパッケージのみを指定することができますが、サブモジュールを省略することができます。
autodoc_mock_imports = ["django"]
全てをシミュレートします
django
小包です。バージョン 1.3 で追加.
バージョン 1.6 で変更: この構成値は,シミュレーションすべきトップモジュールのみを宣言する必要がある.
-
autodoc_typehints
¶ この値は,タイプ提示をどのように表すかを制御する.この設定は、次の値を採用する。
'signature'
--タイププロンプトをその署名(デフォルト)として表示します。'description'
--タイププロンプトを関数または方法の内容として表示する'none'
--キー入力プロンプトは表示されません
バージョン 2.1 で追加.
バージョン 3.0 で追加: 新しいオプション
'description'
追加されました。
-
autodoc_type_aliases
¶ ユーザのための辞書 `type aliases`_ _、タイプ名を完全に限定されたオブジェクト名にマッピングします。これは,文書中で計算されないタイプの別名を保存するために用いられる.黙認して空にする (
{{}}
)。タイプ別名はあなたのプログラムでのみ有効です `Postponed Evaluation of Annotations (PEP 563)`_ _要素通過
from __future__ import annotations
それがそうです。例えば、いくつかのコード使用タイプ別名:
from __future__ import annotations AliasType = Union[List[Dict[Tuple[int, str], Set[int]]], Tuple[str, List[str]]] def f() -> AliasType: ...
もし
autodoc_type_aliases
設定されていなければ,autocはこのコードから内部タグを生成し,以下のようになる... py:function:: f() -> Union[List[Dict[Tuple[int, str], Set[int]]], Tuple[str, List[str]]] ...
もしあなたが設定したら
autodoc_type_aliases
として{{'AliasType': 'your.module.AliasType'}}
これは,内部で以下の文書を生成する... py:function:: f() -> your.module.AliasType: ...
バージョン 3.3 で追加.
-
autodoc_warningiserror
¶ この値制御
sphinx-build -W
モジュールを導入している間.もしFalse
導入したモジュールが警告を発すると,autocはそのエラーを強制的に抑制する.デフォルトの場合、True
それがそうです。
-
autodoc_inherit_docstrings
¶ この値は文書文字列継承を制御する.Trueに設定されている場合、クラスまたはメソッドの文書文字列(明示的に設定されていない場合)は親レベルから継承される。
黙認する.
True
それがそうです。バージョン 1.7 で追加.
-
suppress_warnings
autodoc
以下のように警告メッセージを抑制することをサポートするsuppress_warnings
それがそうです。これはまた、以下の警告タイプを許可する。自動ドッキング.
autodoc.import_object
文書文字列前処理¶
Autodocは、以下の追加イベントを提供します。
-
autodoc-process-docstring
(app, what, name, obj, options, lines)¶ バージョン 0.4 で追加.
Autocが文書文字列を読み込んで処理する場合に発行される. 線.線 イベントハンドラが修正可能な文字列リストである処理済み文書文字列の行である 位置につけ! Sphinxが出力に入力する内容を変更します。
- パラメータ
app -- Sphinxアプリケーションオブジェクト
what -- the type of the object which the docstring belongs to (one of
"module"
,"class"
,"exception"
,"function"
,"method"
,"attribute"
)name -- 対象の完全限定名
obj -- 対象自体が
options -- the options given to the directive: an object with attributes
inherited_members
,undoc_members
,show_inheritance
andnoindex
that are true if the flag option of same name was given to the auto directivelines -- 文書文字列の行は、上記を参照されたい
-
autodoc-before-process-signature
(app, obj, bound_method)¶ バージョン 2.4 で追加.
Autodocフォーマット対象署名の前に発行する.イベントハンドラは,その署名を変更するためにオブジェクトを修正することができる.
- パラメータ
app -- Sphinxアプリケーションオブジェクト
obj -- 対象自体が
bound_method -- ブール値は、オブジェクトが束縛されているかどうかを示す
-
autodoc-process-signature
(app, what, name, obj, options, signature, return_annotation)¶ バージョン 0.5 で追加.
Autocがフォーマットされたオブジェクトの署名を発行する.イベントハンドラは新しいタプルを返すことができる
(signature, return_annotation)
Sphinxが出力に入力する内容を変更します。- パラメータ
app -- Sphinxアプリケーションオブジェクト
what -- the type of the object which the docstring belongs to (one of
"module"
,"class"
,"exception"
,"function"
,"method"
,"attribute"
)name -- 対象の完全限定名
obj -- 対象自体が
options -- the options given to the directive: an object with attributes
inherited_members
,undoc_members
,show_inheritance
andnoindex
that are true if the flag option of same name was given to the auto directivesignature -- 関数署名、フォーマットは文字列
"(parameter_1, parameter_2)"
あるいは、あるいはNone
もしリフレクションが成功しなかったら、指示に署名が指定されていない。return_annotation -- 関数は注釈を以下の形式の文字列に返す
" -> annotation"
あるいは、あるいはNone
注釈が戻っていなければ
♪the sphinx.ext.autodoc
モジュールは、イベントで一般的に使用される文書文字列処理に工場関数を提供する autodoc-process-docstring
:
-
sphinx.ext.autodoc.
cut_lines
(pre: int, post: int = 0, what: Optional[str] = None) → Callable[ソース]¶ 最初の削除に戻ります。 pre 最後です。 post 各文書文字列の行。もし what 1つの種類の文書文字列のみがある文字列列である what 処理されます。
このように使用する(例えば、
setup()
機能していますconf.py
):from sphinx.ext.autodoc import cut_lines app.connect('autodoc-process-docstring', cut_lines(4, what=['module']))
これは代わりに使うべきだ
automodule_skip_lines
それがそうです。
-
sphinx.ext.autodoc.
between
(marker: str, what: Optional[Sequence[str]] = None, keepempty: bool = False, exclude: bool = False) → Callable[ソース]¶ 保留しているか保存しているかのいずれかのリスニングプログラムに戻ります 排除する Trueで一致する行間の行を除外するかどうか 標識物 正規表現.一致する行がなければ,生成された文書文字列は空となるため,何の変更も行わない. 空に保つ 本当です。
もし what 1つの種類の文書文字列のみがある文字列列である what 処理されます。
メンバーを飛び越している¶
Autodocは、ユーザが、メンバを文書に含めるべきかどうかを決定するために、以下のイベントを使用してカスタム方法を定義することを可能にする。
-
autodoc-skip-member
(app, what, name, obj, skip, options)¶ バージョン 0.5 で追加.
Autocがメンバを文書に含めるべきかどうかを決定しなければならない場合.ハンドラが戻ってきた場合は,そのメンバを除外する.
True
それがそうです。処理プログラムが戻ってくると、それが含まれていますFalse
それがそうです。複数の有効な拡張処理がある場合
autodoc-skip-member
イベントの場合,autocはハンドラを用いて返された最初の非`None゚`‘の値を返す.処理プログラムは戻るべきですNone
Autocや他の有効な拡張のスキップ行為に戻す.- パラメータ
app -- Sphinxアプリケーションオブジェクト
what -- the type of the object which the docstring belongs to (one of
"module"
,"class"
,"exception"
,"function"
,"method"
,"attribute"
)name -- 対象の完全限定名
obj -- 対象自体が
skip -- ユーザハンドラが決定を書き換えなければ,autocがそのメンバをスキップするかどうかを示すブール値である.
options -- the options given to the directive: an object with attributes
inherited_members
,undoc_members
,show_inheritance
andnoindex
that are true if the flag option of same name was given to the auto directive