禁止来自Cython的警告

时间:2018-01-22 14:40:45

标签: python python-3.x warnings cython suppress-warnings

我使用

手动对*.pyx文件进行cython化
cython -3 -Wextra mymodule.pyx

我使用-Wextra选项生成其他警告,这对于清理冗余代码段非常有用。但是,形式的许多警告

warning: mymodule.pyx:123:45: local variable 'x' might be referenced before assignment

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

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

1 个答案:

答案 0 :(得分:2)

cython中的警告是通过编译器指令控制的;它们目前似乎只是部分documented,但您可以在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