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: listListクラスの特殊なメンバを避けるために。Another example; If your class Foo has
__str__special method and autodoc directive has bothinherited-membersandspecial-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,autoclassandautoexceptiondirectives 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 で追加.
automodulealso recognizes thesynopsis,platformanddeprecatedoptions that the standardpy:moduledirective 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そしてautoattributeVbl.ある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_inheritanceandnoindexthat 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_inheritanceandnoindexthat 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゚`‘の値を返す.処理プログラムは戻るべきですNoneAutocや他の有効な拡張のスキップ行為に戻す.- パラメータ
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_inheritanceandnoindexthat are true if the flag option of same name was given to the auto directive