繁体   English   中英

使用动态类和动态模块时如何使用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添加扩展以处理此用例? 有什么想法吗?

完整的最低工作示例位于此处

您在modules.rst中具有以下automodule指令:

.. automodule:: modules
   :members:
   :undoc-members:
   :show-inheritance:

但是动态模块的合格名称是modules.Module1modules.Module2 (这些名称已添加到_factory.py中的sys.modules中)。

以下对我有用:

.. automodule:: modules.Module1
    :members:
    :undoc-members:
    :show-inheritance:

.. automodule:: modules.Module2
    :members:
    :undoc-members:
    :show-inheritance:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM