我正在使用docstrings来记录python代码和sphinx-autodoc来生成apidoc HTML。我的包的结构如下:mainpackage.subpackage.module
,我希望apidocs链接到模块中的类mainpackage.subpackage.Class
而不是mainpackage.subpackage.module.Class
。我的问题来自scikit-multilearn项目,例如:我在MLClassifierBase
中有一个skmultilearn.base.base
课程,但我在__init__.py
的{{1}}中导入了该课程,我希望sphinx生成的apidocs只使用这个类skmultilearn.base
而不是skmultilearn.base.MLClassifierBase
,就像现在一样。有人可以帮忙吗?
我已经尝试过了:
在skmultilearn.base.base.MLClassifierBase
每Sphinx apidoc - don't print full path to packages and modules
add_module_names = False
将conf.py
添加到""".. automodule:: base"""
将skmultilearn/base/__init__.py
添加到__all__ = ['MLClassifierBase']
将skmultilearn/base/__init__.py
添加到课程文档
我在.. autoclass:: base.MLClassifierBase
派生的每个类中仍然有 Bases:skmultilearn.base.base.MLClassifierBase 。我该如何改变?
答案 0 :(得分:2)
我找到了一个解决方案:
"""
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:
的定义