[Python-Dev] Fixing the ctypes implementation of the PEP3118 buffer interface (original) (raw)
Terry Reedy tjreedy at udel.edu
Sun Apr 14 16:42:13 EDT 2019
- Previous message (by thread): [Python-Dev] Fixing the ctypes implementation of the PEP3118 buffer interface
- Next message (by thread): [Python-Dev] PEP 580 and PEP 590 comparison.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message (by thread): [Python-Dev] Fixing the ctypes implementation of the PEP3118 buffer interface
- Next message (by thread): [Python-Dev] PEP 580 and PEP 590 comparison.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]