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 <rep...@bugs.python.org>
<http://bugs.python.org/issue22445>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to