Включение строки документации в документацию Sphinx - PullRequest
9 голосов
/ 19 октября 2011

Я бы хотел включить только строку документации определенной функции в мою документацию по Sphinx.Однако, похоже, что нет вариантов просто отобразить эти детали без соответствующих определений классов и функций, используя http://sphinx.pocoo.org/ext/autodoc.html

Я пытался создать класс, как описано в show * only * docstring в документации Sphinx но я не уверен, как это вписывается в шаблон.

Я также безуспешно пробовал обработчик событий 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 Ответ

14 голосов
/ 20 октября 2011

После просмотра источника и экспериментов, вот как это сделать в 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)

Тогда, когда вы просто хотите отобразить строку документации метода, используйте следующий формат в ваших файлах .txt или .rst. Просто добавьте ваш objname к auto.

.. autosimple:: mod.MyClass.my_method
...