如何从 Sphinx autodoc 中排除 pytest test_* 函数?
How to exclude pytest test_* functions from Sphinx autodoc?
我的 package
中有多个模块。
package/
|--mod1.py
|--mod2.py
每个模块包含一些 functions
和一个 test_function
用于测试模块。
我正在使用 sphinx-apidoc
为 package
中的每个 module
生成 .rst
文件。我的问题是,当我为我的包生成文档时,test
函数也包含在文档中。我知道使用 :exclude members: function
可以跳过函数。但我正在寻找一种解决方案,允许我使用类似于 test_*
.
的模式对所有模块执行此操作
我的 package.rst
文件如下所示:
package package
===============
Submodules
----------
.. toctree::
package.mod1
package.mod2
Module contents
---------------
.. automodule:: package
:members:
:undoc-members:
:show-inheritance:
我的 mod1.rst
文件如下所示:
package.mod1 module
===================
.. automodule:: package.mod1
:members:
:undoc-members:
:show-inheritance:
提前致谢。
虽然@mzjn 的评论绝对是一个很好的指导,但我仍然为此苦苦挣扎了一段时间。
解决方案是在 conf.py
文件中为 autodoc-skip-member
事件编写处理程序并将其连接到 autodoc-skip-member
事件。
所以这是后者的样子:
# conf.py
# Loads of configuration settings
# This is the expected signature of the handler for this event, cf doc
def autodoc_skip_member_handler(app, what, name, obj, skip, options):
# Basic approach; you might want a regex instead
return name.startswith("test_")
# Automatically called by sphinx at startup
def setup(app):
# Connect the autodoc-skip-member event from apidoc to the callback
app.connect('autodoc-skip-member', autodoc_skip_member_handler)
我的 package
中有多个模块。
package/
|--mod1.py
|--mod2.py
每个模块包含一些 functions
和一个 test_function
用于测试模块。
我正在使用 sphinx-apidoc
为 package
中的每个 module
生成 .rst
文件。我的问题是,当我为我的包生成文档时,test
函数也包含在文档中。我知道使用 :exclude members: function
可以跳过函数。但我正在寻找一种解决方案,允许我使用类似于 test_*
.
我的 package.rst
文件如下所示:
package package
===============
Submodules
----------
.. toctree::
package.mod1
package.mod2
Module contents
---------------
.. automodule:: package
:members:
:undoc-members:
:show-inheritance:
我的 mod1.rst
文件如下所示:
package.mod1 module
===================
.. automodule:: package.mod1
:members:
:undoc-members:
:show-inheritance:
提前致谢。
虽然@mzjn 的评论绝对是一个很好的指导,但我仍然为此苦苦挣扎了一段时间。
解决方案是在 conf.py
文件中为 autodoc-skip-member
事件编写处理程序并将其连接到 autodoc-skip-member
事件。
所以这是后者的样子:
# conf.py
# Loads of configuration settings
# This is the expected signature of the handler for this event, cf doc
def autodoc_skip_member_handler(app, what, name, obj, skip, options):
# Basic approach; you might want a regex instead
return name.startswith("test_")
# Automatically called by sphinx at startup
def setup(app):
# Connect the autodoc-skip-member event from apidoc to the callback
app.connect('autodoc-skip-member', autodoc_skip_member_handler)