如何在使用动态 类 和动态模块时使用 Sphinx 自动生成 Python 文档
How to autogenerate Python documentation using Sphinx when using dynamic classes and dynamic modules
我目前有一个用例,我正在使用以下代码在模块中创建 Python 类。
...
module = type.ModuleType(module_name)
...
klass = type(name, (object, ), dict(__doc__='docstring'))
...
setattr(module, name, klass)
...
但是 Sphinx 无法为这些 类 生成文档。它甚至无法找到 类。有没有办法向 Sphinx 添加扩展来处理这个用例?想法?
完整的最小工作示例位于 here。
您在 modules.rst 中有以下 automodule
指令:
.. automodule:: modules
:members:
:undoc-members:
:show-inheritance:
但是动态模块的限定名称是modules.Module1
和modules.Module2
(这些名称被添加到_factory.py中的sys.modules
)。
以下对我有用:
.. automodule:: modules.Module1
:members:
:undoc-members:
:show-inheritance:
.. automodule:: modules.Module2
:members:
:undoc-members:
:show-inheritance:
我目前有一个用例,我正在使用以下代码在模块中创建 Python 类。
...
module = type.ModuleType(module_name)
...
klass = type(name, (object, ), dict(__doc__='docstring'))
...
setattr(module, name, klass)
...
但是 Sphinx 无法为这些 类 生成文档。它甚至无法找到 类。有没有办法向 Sphinx 添加扩展来处理这个用例?想法?
完整的最小工作示例位于 here。
您在 modules.rst 中有以下 automodule
指令:
.. automodule:: modules
:members:
:undoc-members:
:show-inheritance:
但是动态模块的限定名称是modules.Module1
和modules.Module2
(这些名称被添加到_factory.py中的sys.modules
)。
以下对我有用:
.. automodule:: modules.Module1
:members:
:undoc-members:
:show-inheritance:
.. automodule:: modules.Module2
:members:
:undoc-members:
:show-inheritance: