gpt4 book ai didi

python - 如何使 apidocs 在 sphinx-apidoc 中使用包而不是模块

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:38 24 4
gpt4 key购买 nike

我正在使用 docstrings 来记录 python 代码,并使用 sphinx-autodoc 来生成 apidoc HTML。我的包的结构如下:mainpackage.subpackage.module,我希望 apidocs 链接到模块中的类,如 mainpackage.subpackage.Class 而不是 mainpackage.subpackage.module.Class.我的问题来自 scikit-multilearn项目,例如:我在 skmultilearn.base.base 中有一个 MLClassifierBase 类,但我将它导入到 __init__.pyskmultilearn.base,我希望 sphinx 生成的 apidocs 仅将此类用作 skmultilearn.base.MLClassifierBase 而不是 skmultilearn.base.base.MLClassifierBase 就像现在一样。有人可以帮忙吗?

我已经试过了:

  • 根据 Sphinx apidoc - don't print full path to packages and modulesconf.py 中设置 add_module_names = False

  • 添加 "".. automodule::base"""skmultilearn/base/__init__.py

  • __all__ = ['MLClassifierBase'] 添加到 skmultilearn/base/__init__.py

  • 添加 .. autoclass::base.MLClassifierBase 到类文档

在派生自 MLClassifierBase 的每个类中,我仍然有一个 Bases: skmultilearn.base.base.MLClassifierBase。我该如何更改?

最佳答案

我找到了一个解决方案:

"""
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``中的类名

关于python - 如何使 apidocs 在 sphinx-apidoc 中使用包而不是模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com