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生成文档.
我怎么能保持原样,仍然可以获得文档中的文档字符串?
使用此处发布的方法: 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'