Sphinx自定义autoclass输出

时间:2013-02-15 20:50:04

标签: python-sphinx

我有一个包含多个类的模块。目前我使用..automodule来记录模块。我希望每个类都有自己的带有类名的标题部分。我可以通过将..automodule foo替换为:

来实现这一目标
Bar
===

..autoclass foo.Bar

Baz
===

..autoclass foo.Baz

...

但是,这需要我手动列出我为此执行的每个模块中的每个类。自定义自动模块生成的内容的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

使用Sphinx并不像Epydoc或Doxygen那样直接从源代码生成API文档。这是一种不同的工具。

Sphinx适用于.rst(reStructuredText)文件,如果您希望每个类都有自己的类名称标题,则必须自己添加标题并使用.. autoclass::。仅使用.. automodule::无法完成此操作。是的,这很不方便(类似的情绪表达为here)。另请参阅this answerthis answer

可以通过遍历Python代码并生成.rst输出的脚本来缓解此问题。 Sphinx已经附带了这样的脚本sphinx-apidoc。但是,它不会生成任何.. autoclass::指令,只会生成.. automodule::

这是另一个可以输出.. autoclass::https://github.com/PyMVPA/PyMVPA/blob/master/tools/apigen.py的脚本。也许你可以使用它。