sphinx.ext.inheritance_diagram --継承マップも含まれています

バージョン 0.6 で追加.

この拡張により、これらの関係マップは継承関係マップを含むことができます Graphviz extension それがそうです。

これは以下の指示を追加する:

.. inheritance-diagram::

この命令は、1つまたは複数のパラメータを有し、各パラメータは、モジュールまたはクラス名を有する。クラス名は非限定的であってもよく、この場合、現在説明されているモジュールに存在するとみなされる(参照 py:module )。

基本クラスは、各所与のクラスおよび各所与のモジュール内の各クラスについて決定される。そして,すべてのクラスとその基底クラスから1つのグラフを生成し,Graphviz拡張により有向グラフとして表現する.

この指示は parts 所与の場合、それは整数でなければならず、提案命令は、表示された名前に(右から左へ)多くの点分離部分を保持する。例えば parts=1 クラス名のみが表示され、クラス名を含むモジュールの名前は表示されない。

バージョン 2.0 で変更: Forの価値 parts 負であってもよく,左側からいくつの部品を置くかを示す.例えばあなたのすべてのクラス名が lib. あなたは与えることができます :parts: -1 このプレフィックスは,表示されたノード名から削除される.

この指示はまた支持しています private-bases フラグオプション;所与の場合、プライベートベースクラス(名前は _ )は含まれます。

ご利用いただけます caption グラフにタイトルのオプションを提供します。

バージョン 1.1 で変更: 増列する. private-bases オプション;以前は、すべての基地が含まれていた。

バージョン 1.5 で変更: 増列する. caption 選択権.

それはまだ支持されています top-classes オプション、オプションは、コンマで分離された1つまたは複数のクラス名を必要とします。指定された場合、継承トラバースは、指定されたクラス名で停止される。以下の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 of sphinx.ext.inheritance_diagram.InheritanceDiagram

クラス名のみを表示します:

.. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram
   :parts: 1
Inheritance diagram of sphinx.ext.inheritance_diagram.InheritanceDiagram

グラフを以下の位置で停止する sphinx.util.docutils.SphinxDirective (最上位は依然としてライオンの顔像の一部)であり、公共の最左部分を除去しています (sphinx )すべての名前から:

.. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram
   :top-classes: sphinx.util.docutils.SphinxDirective
   :parts: -1
Inheritance diagram of sphinx.ext.inheritance_diagram.InheritanceDiagram

配置

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'}