Python Sphinx Autodoc删除空的子模块和包

Python Sphinx Autodoc删除空的子模块和包,python,python-sphinx,autodoc,sphinx-apidoc,Python,Python Sphinx,Autodoc,Sphinx Apidoc,我正试图使用sphinx为我的项目创建一个文档,它是一组功能,在项目内部划分为模块 我只需要在文档中公开函数的一小部分,因此我使用了autodoc skip member来过滤不需要的内容,通过标记docstring,它似乎可以通过不列出不需要的函数来工作,但我最终得到了一堆空模块和子模块 有没有办法告诉sphinx不要列出空模块? 我假设我可以使用exclude功能,但是添加新代码不是一个自动过程,我必须始终维护排除列表 我正在使用此流程生成HTML文档: sphinx-apidoc -f -

我正试图使用sphinx为我的项目创建一个文档,它是一组功能,在项目内部划分为模块

我只需要在文档中公开函数的一小部分,因此我使用了
autodoc skip member
来过滤不需要的内容,通过标记docstring,它似乎可以通过不列出不需要的函数来工作,但我最终得到了一堆空模块和子模块

有没有办法告诉sphinx不要列出空模块? 我假设我可以使用
exclude
功能,但是添加新代码不是一个自动过程,我必须始终维护排除列表

我正在使用此流程生成HTML文档:

sphinx-apidoc -f -e -M -o source/ ../src/
sphinx-build source/ build/
这是过滤掉
conf.py
文件中函数的代码,即使在模块上返回
True
时,它也会在最终的HTML文档中列出

def include_only(app, what, name, obj, skip, options):
    if obj.__doc__ is not None and "::public" in obj.__doc__:
        return False
    return True


def setup(app):
    app.connect('autodoc-skip-member', include_only)

一个选项是调整sphinx apidoc的输出,然后将要保留的*.rst文件添加到源代码管理中。无需每次生成文档时都运行sphinx apidoc。请参阅。一个选项是调整sphinx apidoc的输出,然后将要保留的*.rst文件添加到源代码管理中。无需每次生成文档时都运行sphinx apidoc。看见