[Cython] "relaxed_strides" test broken with NumPy 1.8
njs at pobox.com
Sat Jan 4 17:54:29 CET 2014
On 4 Jan 2014 11:53, "Stefan Behnel" <stefan_ml at behnel.de> wrote:
> mark florisson, 03.01.2014 23:28:
> > On 3 January 2014 18:22, Stefan Behnel wrote:
> >> I enabled the NumPy build for our Py3.3 test runs and while I was at
> >> got it to use the latest NumPy release 1.8. This made one of the tests
> >> """
> >> Traceback (most recent call last):
> >> File ".../doctest.py", line 1313, in __run
> >> compileflags, 1), test.globs)
> >> File "<doctest relaxed_strides.__test__.test_one_sized (line
> >> 29)>", line 1, in <module>
> >> test_one_sized(a)
> >> File "relaxed_strides.pyx", line 38, in
> >> relaxed_strides.test_one_sized (relaxed_strides.cpp:1414)
> >> File "stringsource", line 622, in
> >> (relaxed_strides.cpp:7568)
> >> File "stringsource", line 327, in
> >> View.MemoryView.memoryview.__cinit__ (relaxed_strides.cpp:3717)
> >> ValueError: ndarray is not C-contiguous
> >> """
> >> According to the comments in the test file and the corresponding NumPy
> >> request, this seems to be somewhat expected.
> >> https://github.com/numpy/numpy/pull/3162
> >> Does someone know enough about this to figure out what to do?
> > It seems to come from the call to __Pyx_GetBuffer, which is
> > PyObject_GetBuffer in python 3. Maybe this is Python 3 not checking
> > for an extent of 1, but instead only checking the stride (which is a
> > multiple of the itemsize)?
> No, Py3 doesn't do any validation here, it does a straight call into the
> object's slot function, i.e. into the NumPy array itself.
> So, the question is: who's wrong here? The test or NumPy?
> Hmm, or maybe just me. I didn't define the NPY_RELAXED_STRIDES_CHECKING
> environment variable for the NumPy build. Let's try that first.
It's probably nicer though to write the Cython tests in such a way that
they can pass against a default numpy installation? To avoid user confusion
and all that.
If those tests depend on numpy having relaxed strides enabled, then I'd
suggest checking for this a test time and skipping the tests if not found.
The relaxed strides docs give a recipe for determining how numpy was built.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cython-devel