如何使用 Sphinx apidoc 仅记录在 __init__.py 中导入的 Python 类?
How to use Sphinx apidoc to only document Python classes that are imported in __init__.py?
所以目前我正在使用 apidoc 为我的文档生成 .rst 文件,然后对它们使用 autodoc。问题是我的包将代码分成许多不同的文件,这导致了这个嵌套的混乱(我的 toctree 的最大深度为 4):
Welcome to (package)'s documentation!
Contents:
- (package)
- (package) package
- subpackages
- package.subpackage1 subpackage
- ...
- submodules
- package.submodule1 module
- module contents
我们将所有相关的 class 导入包的基础 __init__.py
。
举个例子:我们有一个public class package.submodule1.SubModule1Class
。
作为包用户,我可以通过 from package import SubModule1Class
) 导入 class。
我想从我们在这个 __init__.py
中导入的所有 classes 自动生成文档,像这样:
Welcome to (package)'s documentation!
Contents:
- SubModuleClass1
- SubModuleClass2
- SubModuleClass3
...
我可以使用 apidoc 上的哪些配置设置来实现此目标状态?我尝试过各种各样的东西,但没有什么比这更像的了。
我想到的解决方案是使用 Autosummary,这不是我想要的,但已经足够好了。我必须将所有顶级 类 导入我的 index.rst:
.. toctree::
:hidden:
self
.. autosummary::
:toctree: stubs
:nosignatures:
package.MyClass1
package.MyClass2
...
所以目前我正在使用 apidoc 为我的文档生成 .rst 文件,然后对它们使用 autodoc。问题是我的包将代码分成许多不同的文件,这导致了这个嵌套的混乱(我的 toctree 的最大深度为 4):
Welcome to (package)'s documentation!
Contents:
- (package)
- (package) package
- subpackages
- package.subpackage1 subpackage
- ...
- submodules
- package.submodule1 module
- module contents
我们将所有相关的 class 导入包的基础 __init__.py
。
举个例子:我们有一个public class package.submodule1.SubModule1Class
。
作为包用户,我可以通过 from package import SubModule1Class
) 导入 class。
我想从我们在这个 __init__.py
中导入的所有 classes 自动生成文档,像这样:
Welcome to (package)'s documentation!
Contents:
- SubModuleClass1
- SubModuleClass2
- SubModuleClass3
...
我可以使用 apidoc 上的哪些配置设置来实现此目标状态?我尝试过各种各样的东西,但没有什么比这更像的了。
我想到的解决方案是使用 Autosummary,这不是我想要的,但已经足够好了。我必须将所有顶级 类 导入我的 index.rst:
.. toctree::
:hidden:
self
.. autosummary::
:toctree: stubs
:nosignatures:
package.MyClass1
package.MyClass2
...