我正在尝试使用automodapi为我的Django项目生成文档。当我像这样调用 automodapi 时:
.. automodapi:: mypackage.mymodule
输出包括所有导入的类和函数,例如,Django 模型类,在函数和类的索引中。我想排除导入,只列出在我指定的模块中声明的那些类和函数。
我在文档中看不到任何有关此的内容。
有没有办法做到这一点,最好不修改模块?
更新:@saimn提供了一个使用__all__
的工作解决方案,但我的项目不使用__all__
。如果有一个不涉及修改模块的解决方案,那就太好了。
修补automodapi
以仅包含局部变量也可以解决此问题,同时不需要对代码进行任何更改:
def patch_automodapi(app):
"""Monkey-patch the automodapi extension to exclude imported members"""
from sphinx_automodapi import automodsumm
from sphinx_automodapi.utils import find_mod_objs
automodsumm.find_mod_objs = lambda *args: find_mod_objs(args[0], onlylocals=True)
def setup(app):
app.connect("builder-inited", patch_automodapi)
来源: https://github.com/astropy/sphinx-automodapi/issues/119
上面的代码片段进入您的conf.py
狮身人面像配置文件。
__all__
变量(这可能应该在文档中更清楚地说明(。