sphinx.ext.inheritance_diagram
– 継承図の挿入¶
バージョン 0.6 で追加.
この拡張機能を使用すると、Graphviz 拡張機能
によってレンダリングされた継承図を挿入できます。
このディレクティブを追加します
- .. inheritance-diagram::¶
このディレクティブには、それぞれモジュール名またはクラス名を示す1つ以上の引数があります。クラス名は修飾されていない場合があります。その場合、それらは現在記述されているモジュールに存在すると見なされます(
py:module
を参照)。指定された各クラス、および指定された各モジュール内の各クラスについて、基底クラスが決定されます。次に、すべてのクラスとその基底クラスから、グラフが生成され、graphviz 拡張機能によって有向グラフにレンダリングされます。
このディレクティブは、
parts
というオプションをサポートしています。指定する場合、整数値でなければならず、表示される名前のドットで区切られた部分を(右から左へ)その数だけ保持するようにディレクティブに指示します。たとえば、parts=1
は、クラス名のみを表示し、それらを含むモジュールの名前は表示しません。バージョン 2.0 で変更:
parts
の値は負にすることもでき、左からいくつの部分を削除するかを示します。たとえば、すべてのクラス名がlib.
で始まる場合、:parts: -1
を指定して、表示されるノード名からそのプレフィックスを削除できます。ディレクティブは、
private-bases
フラグオプションもサポートしています。指定されている場合、プライベート基底クラス(名前が_
で始まるクラス)が含まれます。caption
オプションを使用して、図にキャプションを付けることができます。バージョン 1.1 で変更:
private-bases
オプションが追加されました。以前は、すべての基底クラスが常に含まれていました。バージョン 1.5 で変更:
caption
オプションが追加されましたまた、コンマで区切られた1つ以上のクラス名を必要とする
top-classes
オプションもサポートしています。指定されている場合、継承のトラバーサルは指定されたクラス名で停止します。次の Python モジュールがあるとします""" A / \ B C / \ / \ E D F """ class A: pass class B(A): pass class C(A): pass class D(B, C): pass class E(B): pass class F(C): pass
継承図にモジュールを次のように指定した場合
.. inheritance-diagram:: dummy.test :top-classes: dummy.test.B, dummy.test.C
top-classes
の祖先であり、同じモジュールで定義されている基底クラスは、スタンドアロンノードとしてレンダリングされます。この例では、クラス A はグラフ内のスタンドアロンノードとしてレンダリングされます。これは、この拡張機能の内部動作が原因で発生する既知の問題です。クラス A(または他の祖先)を表示したくない場合は、次のように図を生成したいクラスのみを指定します
.. inheritance-diagram:: dummy.test.D dummy.test.E dummy.test.F :top-classes: dummy.test.B, dummy.test.C
バージョン 1.7 で変更: 継承グラフのスコープを制限する
top-classes
オプションが追加されました。
例¶
以下は、ディレクティブを実装する内部 InheritanceDiagram
クラスのさまざまな継承図です。
フルネームの場合
.. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram

クラス名のみを表示する場合
.. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram
:parts: 1

sphinx.util.docutils.SphinxDirective
(Sphinx の一部である最上位のスーパー クラス)で図を停止し、すべての名前から共通の左端の部分(sphinx
)を削除する場合
.. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram
:top-classes: sphinx.util.docutils.SphinxDirective
:parts: -1

- class sphinx.ext.inheritance_diagram.InheritanceDiagram¶
inheritance-diagram
ディレクティブを実装する内部クラス。
設定¶
- inheritance_graph_attrs¶
継承図の graphviz グラフ属性の辞書。
例:
inheritance_graph_attrs = dict(rankdir="LR", size='"6.0, 8.0"', fontsize=14, ratio='compress')
- inheritance_node_attrs¶
継承図の graphviz ノード属性の辞書。
例:
inheritance_node_attrs = dict(shape='ellipse', fontsize=14, height=0.75, color='dodgerblue1', style='filled')
- inheritance_edge_attrs¶
継承図の graphviz エッジ属性の辞書。
- inheritance_alias¶
クラスの完全修飾名をカスタム値にマッピングできるようにします(クラスの基になるパスを公開することが望ましくない場合に役立ちます。たとえば、プライベートクラスであり、ユーザーによってインスタンス化されるべきではない場合)。
例:
inheritance_alias = {'_pytest.Magic': 'pytest.Magic'}