Использование sphinx для автоматического документирования класса python, модуля - PullRequest
20 голосов
/ 25 августа 2009

Я установил Sphinx , чтобы документировать некоторые модули Python и класс, над которым я работаю. Хотя язык разметки выглядит очень хорошо, мне не удалось автоматически задокументировать код Python.

По сути, у меня есть следующий модуль Python:

SegLib.py

И класс под названием Seg в нем. Я хотел бы отобразить строки документации класса и модуля в сгенерированном документе sphinx и добавить к нему дополнительный форматированный текст.

Мой index.rst выглядит так:

Contents:

.. toctree::
:maxdepth: 2

chapter1.rst

и chapter1.rst:

This is a header
================
Some text, *italic text*, **bold text**

* bulleted list.  There needs to be a space right after the "*"
* item 2

.. note::
   This is a note.

See :class:`Seg`

Но Seg просто напечатан жирным шрифтом и не связан с автоматически сгенерированной документацией класса.

Попытка: Смотри: класс: Seg Модуль: мод: «СегЛиб» Модуль: мод: 'SegLib.py'

тоже не помогло. Любые идеи или хорошие учебные ссылки?

Редактировать: изменил SegLib на сегменты (спасибо, iElectric!) И изменил chapter1.rst на: Модуль: mod: segments --------------------------

.. automodule:: segments.segments

.. autoclass:: segments.segments.Seg

Тем не менее, невозможно получить sphinx для непосредственного документирования функций в классе или, что еще лучше, для автоматического добавления всех функций в классе в документ. Попробовал

.. autofunction:: segments.segments.Seg.sid

и получил:

autodoc can't import/find function 'segments.segments.Seg.sid', it reported error: "No module named Seg"

Есть идеи, как автоматически документировать функции и классы короткой командой?

Уди

1 Ответ

13 голосов
/ 25 августа 2009

Добавить в начало файла:

.. module:: SegLib

Попробуйте использовать : автокласс: директива для класса doc.

Кстати: имена модулей должны быть в нижнем регистре.

РЕДАКТИРОВАТЬ: Я многому научился, читая другие исходные файлы .

...