在Sphinx文档中包含docstring

时间:2011-10-19 17:14:09

标签: python python-sphinx autodoc

我想在Sphinx文档中只包含特定函数的docstring。但是,似乎没有选项只使用http://sphinx.pocoo.org/ext/autodoc.html

显示这些细节而没有关联的类和函数定义

我已尝试创建show *only* docstring in Sphinx documentation中概述的类,但我不确定这是如何与模板匹配的。

我也尝试过autodoc-process-docstring事件处理程序而没有运气。

因此,而不是我的文档显示(目前):

class module.MyClass(param)

    This is the class doc string

    my_method()

        This is my method doc string

我只想显示:

This is my method doc string

.txt文件中的当前模板是:

.. autoclass:: module.MyClass
    :members: my_method

1 个答案:

答案 0 :(得分:14)

查看源代码并进行实验后,这里是如何在Sphinx 1.1中完成的。

在conf.py文件中创建一个新的MethodDocumenter子类。在这里你可以设置一个新的“objtype”,确保文档字符串没有缩进,并删除标题。

from sphinx.ext import autodoc

class SimpleDocumenter(autodoc.MethodDocumenter):
    objtype = "simple"

    #do not indent the content
    content_indent = ""

    #do not add a header to the docstring
    def add_directive_header(self, sig):
        pass

然后确保使用以下功能将其添加到可用的文档中(再次在conf.py中):

def setup(app):
    app.add_autodocumenter(SimpleDocumenter)

然后,当您只想显示方法的docstring时,请在.txt或.rst文件中使用以下格式。只需在你的objname前加上auto。

.. autosimple:: mod.MyClass.my_method