如何从自动模态输出中排除导入



我正在尝试使用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__变量(这可能应该在文档中更清楚地说明(。

最新更新