Документирование атрибутов класса с аннотациями типов
Я хочу автогенерировать документацию по моему коду из docstrings. У меня есть базовый класс, предназначенный для хранения некоторых данных:
class DataHolder:
"""
Class to hold some data
Attributes:
batch: Run without GUI
debug (bool): Show debug messages
"""
batch: bool = False
debug: bool = False
name: str = 'default'
"""Object name"""
version: int = 0
"""int: Object version"""
Мой rst
файл:
DataHolder
==========
.. autoclass:: data_holder.DataHolder
:members:
Я документировал каждый атрибут по-другому, чтобы показать разницу, вот результат:
Похоже, что Sphinx не может подключить раздел " Attributes
" с реальными атрибутами, поэтому он не может отображать значение по умолчанию.
Конечным результатом, который я хотел бы достичь, является результат как для поля version
с docstring, определенной как для batch
. Я хочу отобразить имя атрибута со значением по умолчанию и типом, но взятым из аннотаций типа. Похоже, что Sphinx игнорирует аннотации типа в этом случае.
Мои расширения sphinx:
extensions = [
'sphinx.ext.viewcode',
'sphinx.ext.autodoc',
'sphinxcontrib.napoleon',
]
Что я могу сделать для достижения такого поведения? Я не могу найти хороших примеров для такого варианта использования.
Ответы
Ответ 1
Существует встроенная библиотека для генерации документов из doc_strings.
https://docs.python.org/2/library/pydoc.html
Все, что вам нужно, это выполнить
$ pydoc <modulename>
Он дает красивую документацию, перечисляющую doc_strings, определяет параметры и возвращаемые значения. Просто попробуйте.