Я пытаюсь задокументировать проект 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
, включает очень общие строки документации, которые модуль autodoc
Sphinx подбирает и включает. Я бы предпочел сам правильно задокументировать класс, не отказываясь autodoc
от остальной части модуля.
Я пробовал поставить что-то вроде этого прямо перед классом:
"""
.. class:: ERBFilterCoeffs(A0, gain)
:param A0: A0 coefficient
:param gain: Gain coefficient
Magic coefficients.
"""
... но это не отображается в сгенерированных документах. Помещение его после класса приводит к тому, что он будет вложен в документацию общего класса, а не заменяет его.
Как мне просто сказать Sphinx (и расширению autodoc
) использовать мою документацию для класса ERBFilterCoeffs
вместо документации, созданной namedtuple
?