抑制来自 Cython 的警告

Suppress warnings from Cython

我使用

手动 cythonize *.pyx 文件
cython -3 -Wextra mymodule.pyx

我使用 -Wextra 选项来生成额外的警告,这对于清理冗余代码片段很有用。但是,许多

形式的警告
warning: mymodule.pyx:123:45: local variable 'x' might be referenced before assignment

已打印,我不关心。我理解为什么从编译器的角度来看它并不明显,但在我的特定情况下,在任何情况下都不可能在引用之前不分配 x

因此我想继续使用 -Wextra 但过滤掉这种类型的警告,类似于 gcc 的 -Wno 选项。然而,我无法找到这样的功能。

cython 中的警告是通过编译器指令控制的;他们似乎只是部分 documented currently, but you can see the full list in the Cython source

在这种情况下,您希望 warn.maybe_uninitialized 传递给 --directive 选项。

$ cython test.pyx -Wextra
warning: test.pyx:7:12: local variable 'x' might be referenced before assignment

$ cython test.pyx -Wextra --directive warn.maybe_uninitialized=False
# no warning