Как заставить apidocs использовать пакеты вместо модулей в sphinx-apidoc

Я использую строки документации для документирования кода Python и sphinx-autodoc для создания HTML-кода apidoc. Структура моих пакетов следующая: mainpackage.subpackage.moduleЯ хочу, чтобы apidocs связывался с классами из модуля как mainpackage.subpackage.Class и не mainpackage.subpackage.module.Class, Моя проблема исходит от проекта scikit-multilearn, например: у меня есть MLClassifierBase класс в skmultilearn.base.base, но я импортирую это в __init__.py в skmultilearn.baseи я хочу, чтобы генерируемые сфинксами апидоки использовали этот класс только как skmultilearn.base.MLClassifierBase и не skmultilearn.base.base.MLClassifierBase как сейчас. Может кто-нибудь помочь?

Я уже попробовал:

У меня все еще есть Bases: skmultilearn.base.base.MLClassifierBase в каждом классе, производном от MLClassifierBase, Как мне это изменить?

1 ответ

Я нашел решение:

"""
The :mod:`skmultilearn.base` module implements base
classifier classes for scikit-multilearn's multi-label classification.
"""

from .base import MLClassifierBase
from .problem_transformation import ProblemTransformationBase

__all__ = ["MLClassifierBase", 
           "ProblemTransformationBase"]

Он производит документацию для base.ProblemTransformationBase и не base.base.ProblemTransformationBase, Вы должны иметь три элемента в целом __init__.py:

  • определение :mod: упоминается везде
  • импорт классов
  • имена классов в `all``
Другие вопросы по тегам