[Python-Dev] Fixing the ctypes implementation of the PEP3118 buffer interface
Terry Reedy
tjreedy at udel.edu
Sun Apr 14 16:42:13 EDT 2019
On 4/14/2019 2:54 AM, Eric Wieser wrote:
> I've recently been adding better support to Numpy 1.16 for
> interoperability with ctypes.
>
> In doing so, I came across two bugs in the implementation of the
> PEP3118 buffer interface within ctypes, affecting `Structure`s and
> arrays. Rather than repeating the issue summaries here, I've linked
> their tracker issues below, and the patches I filed to fix them.
> * https://bugs.python.org/issue32782 (patch:
> https://github.com/python/cpython/pull/5576)
memoryview(object).itemsize is 0 when object is ctypes structure and
format. C expert needed to review 30-line patch, most of which is error
handling. Patch includes new tests and blurb.
> * https://bugs.python.org/issue32780 (patch:
> https://github.com/python/cpython/pull/5561)
A partial fix for a more complicated memoryview, ctypes structure and
format, and itemsize situation.
> I've seen little to no response on either the bug tracker or the
> github PRs regarding these, so at the recommendation of the "Lifecycle
> of a Pull Request" am emailing this list.
The problem is that the currently listed ctypes and memoryview experts
are not currently active.
> Without these fixes, numpy has no choice but to ignore the broken
> buffer interface that ctypes provides, and instead try to parse the
> ctypes types manually. The sooner this makes a CPython release, the
> sooner numpy can remove those workarounds.
--
Terry Jan Reedy
More information about the Python-Dev
mailing list