[issue22445] Memoryviews require more strict contiguous checks then necessary

Sebastian Berg report at bugs.python.org
Fri Sep 19 21:00:50 CEST 2014


New submission from Sebastian Berg:

In NumPy we decided some time ago that if you have a multi dimensional buffer, shaped for example 1x10, then this buffer should be considered both C- and F-contiguous. Currently, some buffers which can be used validly in a contiguous fashion are rejected.

CPython does not support this currently possibly creating smaller nuisance if/once we change it fully in NumPy, see for example https://github.com/numpy/numpy/issues/5085

I have attached a patch which should (sorry I did not test this at all yet) relax the checks as much as possible. I think this is right, but we did some subtle breaks in user code (mostly cython code) when we first tried changing it, and while numpy arrays may be more prominently C/F-contiguous, compatibility issues with libraries checking for contiguity explicitly and then requesting a strided buffer are very possible.

If someone could give me a hint about adding tests, that would be great.
Also I would like to add a small note to the PEP in any case regarding this subtlety, in the hope that more code will take care about such subtleties.

----------
components: Library (Lib)
files: relaxed-strides-checking.patch
keywords: patch
messages: 227113
nosy: seberg
priority: normal
severity: normal
status: open
title: Memoryviews require more strict contiguous checks then necessary
type: enhancement
Added file: http://bugs.python.org/file36663/relaxed-strides-checking.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22445>
_______________________________________


More information about the Python-bugs-list mailing list