Sphinx 挑剔模式,但仅适用于我明确编写的链接

Bru*_*rry 5 python-sphinx

我尝试打开 Sphinx 的挑剔模式 (-n) 来捕获我可能意外创建的任何损坏的链接。但是,它会在我记录类型的所有位置发出错误。在某些情况下,我已经从语义上描述了类型(例如“3D 数组”),但它甚至对于从类型提示中提取的类型也是如此(即使将 intersphinx 设置为提取 Python 类型)。例如,对于这个模块

from typing import Callable

def foo(x: Callable[..., int]):
    pass
Run Code Online (Sandbox Code Playgroud)

我得到了错误docstring of myproj.foo:: WARNING: py:class reference target not found: Callable[..., int]。这仅包含sphinx.ext.autodoc扩展sphinx.ext.intersphinx和新生成的conf.py。

有没有某种方法可以阻止 Sphinx 尝试生成类型信息的链接,或者至少阻止它在它们不存在时抱怨,同时仍然告诉我手写文档中的错误链接?

我正在使用 Sphinx 3.0.3。

Ste*_*rcy 2

也许nitpick_ignore会做你想做的事?在你的conf.py,像这样:

nitpick_ignore = [
    ("py:class", "Callable"),
]
Run Code Online (Sandbox Code Playgroud)

我不确定元组中应该使用的确切值,但我从这个问题链接提交中得到了这个想法。