如何使用Sphinx apidoc仅记录__init__.py中导入的Python类?

时间:2019-12-04 17:13:09

标签: python python-sphinx autodoc

因此,当前我正在使用apidoc为文档生成.rst文件,然后在其上使用autodoc。问题是我的程序包将代码分成许多不同的文件,这导致此嵌套混乱(我的toctree的最大深度为4):

Welcome to (package)'s documentation!
Contents:
- (package)
    - (package) package
        - subpackages
            - package.subpackage1 subpackage
            - ...
        - submodules
            - package.submodule1 module
- module contents

我们将所有相关的类导入包的基础__init__.py中。

例如:我们有一个公共类package.submodule1.SubModule1Class。 作为包用户,我可以通过执行from package import SubModule1Class来导入类。

我想从我们在此__init__.py中以统一层次结构导入的所有类中自动生成文档,如下所示:

Welcome to (package)'s documentation!
Contents:
- SubModuleClass1
- SubModuleClass2
- SubModuleClass3
...

我可以使用apidoc上的哪些配置设置来实现此目标状态?我已经尝试了各种方法,但是没有什么比这更相似。

1 个答案:

答案 0 :(得分:0)

我想出的解决方案是使用Autosummary,它并不是我想要的,但效果很好。我必须将所有顶级类导入到index.rst:

.. toctree::
   :hidden:

   self

.. autosummary::
   :toctree: stubs
   :nosignatures:

   package.MyClass1
   package.MyClass2
   ...