sphinx.ext.inheritance_diagram
--包括继承关系图¶
Added in version 0.6.
此扩展允许您包括通过 Graphviz extension
.
它添加了以下指令:
- .. inheritance-diagram::¶
这个指令有一个或多个参数,每个参数都给出一个模块或类名。类名可以是非限定的;在这种情况下,它们被认为存在于当前描述的模块中(请参见
py:module
)对于每个给定的类,以及每个给定模块中的每个类,将确定基类。然后,从所有类及其基类中,生成一个图,然后通过graphviz扩展将其呈现到有向图中。
此指令支持一个名为
parts
如果给定,它必须是一个整数,建议该指令在显示的名称中保留多个点分隔的部分(从右到左)。例如,parts=1
只显示类名,不显示包含类名的模块的名称。在 2.0 版本发生变更: 的值
parts
也可以为负,表示要从左侧落下的零件数。例如,如果所有类名都以lib.
你可以给:parts: -1
从显示的节点名称中删除该前缀。该指令还支持
private-bases
标志选项;如果给定,则为私有基类(名称以_
)包括在内。你可以使用
caption
为图表提供标题的选项。在 1.1 版本发生变更: 补充
private-bases
选项;以前,总是包括所有基础。在 1.5 版本发生变更: 补充
caption
选项它还支持
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'}