Shu*_*kar 5 python pytest python-sphinx autodoc
我的package.
package/
|--mod1.py
|--mod2.py
Run Code Online (Sandbox Code Playgroud)
每个模块包含一些functions和一个test_function用于测试该模块的。
我用来为每个insphinx-apidoc生成文件。我的问题是,当我为包生成文档时,这些函数也包含在文档中。我知道可以使用以下方式跳过函数:。但我正在寻找一种解决方案,允许我使用类似于 的模式对所有模块执行此操作。.rstmodulepackagetest:exclude members: functiontest_*
我的package.rst文件如下所示:
package package
===============
Submodules
----------
.. toctree::
package.mod1
package.mod2
Module contents
---------------
.. automodule:: package
:members:
:undoc-members:
:show-inheritance:
Run Code Online (Sandbox Code Playgroud)
我的mod1.rst文件如下所示:
package.mod1 module
===================
.. automodule:: package.mod1
:members:
:undoc-members:
:show-inheritance:
Run Code Online (Sandbox Code Playgroud)
提前致谢。
Rig*_*leg 10
虽然 @mzjn 的评论绝对是一个很好的指导,但我仍然为此苦苦挣扎了一段时间。
解决方案是在文件中编写该autodoc-skip-member事件的处理程序并将其连接到该autodoc-skip-member事件conf.py。
后者如下所示:
# 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)
Run Code Online (Sandbox Code Playgroud)