[英]Sphinx adds documentation for NumPy modules to my docs
我想为我的Python代码生成Sphinx文档。 此代码从numpy
进行了一些导入。 我在mycode上使用sphinx-apidoc
,然后运行make html
。 它生成文档,但也包括numpy
中用于uniform
函数的文档。 如何禁用这些多余的包含物?
这是我的代码:
# encoding: utf-8
"""
This module does blah blah.
"""
from numpy.random import uniform #WHY IS IT INCLUDED IN SPHINX DOC?!!!!
class UberMegaClass(object):
"""Hell yeah!"""
def __init__(self, num_of_something):
print("---")
self.num_of_something = num_of_something
这是Sphinx处理C ++扩展的一个已知错误。 它们可以不必要地包含在文档中。 有一个半官方的解决方法,建议您用conf.py
Mock
对象替换这些模块,如下所示:
import sys
class Mock(object):
__all__ = []
def __init__(self, *args, **kwargs):
pass
def __call__(self, *args, **kwargs):
return Mock()
@classmethod
def __getattr__(cls, name):
if name in ('__file__', '__path__'):
return '/dev/null'
elif name[0] == name[0].upper():
mockType = type(name, (), {})
mockType.__module__ = __name__
return mockType
else:
return Mock()
MOCK_MODULES = ['pygtk', 'gtk', 'gobject', 'argparse',
'numpy', 'numpy.random']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = Mock()
解决该问题的一种方法是更改您的rst。
.. automodule:: module
.. autoclass:: module.UberMegaClass
:members:
:undoc-members:
:show-inheritance:
输出:
This module does blah blah.
class module.UberMegaClass(num_of_something)
Bases: object
Hell yeah!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.