Давайте рассмотрим этот игрушечный класс:
Код: Выделить всё
import param
class A(param.Parameterized):
"""This is my docstring.
"""
a = param.Boolean(True, doc="some docstring for parameter a")
b = param.Number(1, bounds=(-10, 10), doc="some docstring for parameter b")
c = param.Boolean(False, readonly=True, doc="some docstring for parameter c")
def __init__(self, a, b, **kwargs):
super().__init__(a=a, b=b, **kwargs)
def my_method(self):
"my method docstring"
pass
Код: Выделить всё
A?
Код: Выделить всё
Init signature: A(a, b, **kwargs)
Docstring:
This is my docstring.
Parameters of 'A'
=================
Parameters changed from their default values are marked in red.
Soft bound values are marked in cyan.
C/V= Constant/Variable, RO/RW = ReadOnly/ReadWrite, AN=Allow None
Name Value Type Bounds Mode
a True Boolean V RW
b 1 Number (-10, 10) V RW
c False Boolean C RO
Parameter docstrings:
=====================
a: some docstring for parameter a
b: some docstring for parameter b
c: some docstring for parameter c
Type: ParameterizedMetaclass
Subclasses:
Однако нам может потребоваться создать HTML-документация (со Sphinx) модуля, содержащего подклассы param.Parameterized. До сих пор я пробовал Sphinx autodoc. В файле my_module.rst я написал:
Код: Выделить всё
.. module:: my_module
.. autoclass:: A
.. autoattribute:: my_module.A.a
.. autoattribute:: my_module.A.b
.. autoattribute:: my_module.A.c
.. autofunction:: my_module.A.my_method
Для людей, регулярно использующих param, как вы создаете html-документацию своих приложений/модулей? Есть ли способ заставить autodoc извлечь эту строку документации? Или существуют ли какие-либо расширения Sphinx, которые помогают обрабатывать подклассы param.Parameterized?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ameterized