Я пытаюсь документировать проект 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?