autodoc一个扩展模拟类的类

who*_*Who 5 mocking python-2.7 python-sphinx autodoc

我正在尝试在扩展外部类的类上运行autodoc.

我使用了mock,以便接受导入.

为此,我使用了本博客中描述的内容http://blog.rtwilson.com/how-to-make-your-sphinx-documentation-compile-with-readthedocs-when-youre-using-numpy-and-scipy/

import mock

MOCK_MODULES = ['de', 'de.xyz', 'de.xyz.class_that_is_extended']
for mod_name in MOCK_MODULES:
  sys.modules[mod_name] = mock.Mock()
Run Code Online (Sandbox Code Playgroud)

我尝试记录的python文件如下所示:来自de.xyz import class_that_is_extended

class extending_class (class_that_is_extended):
'''
  docstring
'''
Run Code Online (Sandbox Code Playgroud)

在运行sphinx之后,结果是,只显示了类名以及指向源的链接.

当我将"classes extend_class(class_that_is_extended):"更改为"类extend_class(object):"sphinx/autodoc使用docstring生成文档.

我怎么能保持原样,仍然可以获得文档中的文档字符串?

who*_*Who 2

使用此处发布的方法: Sphinx-doc:automodule:带有模拟导入

我刚刚改变了这一行:

sys.modules[mod_name] = mock.Mock()
Run Code Online (Sandbox Code Playgroud)

到:

sys.modules[mod_name] = mock.Mock(class_that_is_extended=object)
Run Code Online (Sandbox Code Playgroud)

并从 MOCK_MODULES 中删除了 'de.xyz.class_that_is_extended'