3

I cythonize *.pyx files manually using

cython -3 -Wextra mymodule.pyx

I use the -Wextra option to generate additional warnings, useful for cleaning up redundant code pieces. However, many warnings of the form

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

are printed, which I do not care for. I understand why it is not obvious from the perspective of the compiler, but under no circumstance is it ever possible for x to not be assigned before referencing, in my particular situation.

I would therefore like to keep using -Wextra but filter out this type of warning, similar to the -Wno option of gcc. I have however not been able to track down such a feature.

jmd_dk
  • 12,125
  • 9
  • 63
  • 94

1 Answers1

4

Warnings in cython are controlled via compiler directives; they only seem to be partially documented currently, but you can see the full list in the Cython source.

In this case you want warn.maybe_uninitialized, passed to the --directive option.

$ 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
chrisb
  • 49,833
  • 8
  • 70
  • 70