gpt4 book ai didi

python - 如何从 Sphinx autodoc 中排除 pytest test_* 函数?

转载 作者:太空宇宙 更新时间:2023-11-03 16:11:37 25 4
gpt4 key购买 nike

我的中有多个模块。

package/
|--mod1.py
|--mod2.py

每个模块都包含一些函数和一个用于测试模块的test_function

我正在使用sphinx-apidocpackage中的每个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 的评论绝对是一个很好的指导,但我仍然为此苦苦挣扎了一段时间。

解决方案是为 autodoc-skip-member 编写一个处理程序事件并将其连接到 conf.py 文件中的 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)

关于python - 如何从 Sphinx autodoc 中排除 pytest test_* 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com