Я пытаюсь документировать проект Python с помощью Sphinx, но у меня возникают проблемы с объединением расширения autodoc
с классом namedtuple
.
В одном документе gammatone.rst
у меня есть:
:mod:`gammatone` -- gammatone filterbank toolkit
================================================
.. automodule:: gammatone
:members:
.. automodule:: gammatone.coeffs
:members:
В моем gammatone/coeffs.py
у меня есть:
from collections import namedtuple
ERBFilterCoeffs = namedtuple(
'ERBFilterCoeffs', # Most parameters omitted
[
'A0',
'gain',
])
Код, сгенерированный namedtuple
, включает в себя очень общие докстры, которые модуль Sphinx autodoc
берет и включает. Я предпочел бы правильно документировать класс, не оставляя autodoc
для остальной части модуля.
Я попытался поставить что-то вроде этого непосредственно перед классом:
"""
.. class:: ERBFilterCoeffs(A0, gain)
:param A0: A0 coefficient
:param gain: Gain coefficient
Magic coefficients.
"""
... но он не отображается в сгенерированных документах. Положив его после класса, он будет вложен под документами общего класса, а не заменяет его.
Как просто сказать Sphinx (и расширение autodoc
) использовать мою документацию для класса ERBFilterCoeffs
вместо сгенерированного namedtuple
?