python - 收集警告并让 Sphinx 提升它们
问题描述
我正在使用autodoc-process-docstring来检查无证成员
def warn_undocumented_members(app, what, name, obj, options, lines):
if what in MEMBERS_TO_WARN and not lines:
sys.stderr.write("<autodoc> WARNING: {} is undocumented: {}\n".format(what, name))
app.connect('autodoc-process-docstring', warn_undocumented_members)
有没有可能在 Sphinx 中冒泡警告?
我查看了 app 对象,但找不到任何令人满意的东西。我发现的唯一一件事是在 if 子句中引发SphinxError,但这是停止构建而不是收集所有警告。这也不尊重(我总是有一个硬错误)的-W
标志。sphinx-build
解决方案
Sphinx 组件通过该logging
设施传递警告,为此 Sphinx 在sphinx.util.logging
. 如果您使用那里提供的记录器,Sphinx 会将您的警告与它自己的警告相同,并尊重-W
将它们变成错误的标志。
import sphinx
logger = sphinx.util.logging.getLogger('sphinx.ext.autodoc')
def warn_undocumented_members(app, what, name, obj, options, lines):
if what in MEMBERS_TO_WARN and not lines:
logger.warning(f'{what} is undocumented: {name}', type='autodoc')
def setup(app):
app.connect('autodoc-process-docstring', warn_undocumented_members)
推荐阅读
- javascript - 我无法使用 html2canvas 和 jspdf 从 HTML 页面生成 PDF 文件
- git - zsh git 命令自动完成和文件名自动完成一起?
- javascript - 过滤嵌套在对象中的对象中的值
- javascript - 使用 eslint 详尽的deps 反应订阅/取消订阅的 useEffect 依赖项
- r - 如何从 Web 浏览器获取 R Shiny 应用程序的 URL?
- python - 如何从文件中只导入一个值?
- regex - perl 正则表达式获取逗号不在括号或嵌套括号中
- typescript - 如何推断通用属性类型?
- python - 如何在 Python 中加速这项任务
- docker - 由于“没有这样的文件或目录”而导致 gitlab CI 失败