bpo-45459: Add Py_buffer to limited API (GH-29991)

- [x] ``Py_buffer`` struct
- [x] ``PyBuffer_*()`` API functions
- [x] ``PyBUF_*`` constants
- [x] ``Py_bf_getbuffer`` and ``Py_bf_releasebuffer`` type slots
- [x] ``PyMemoryView_FromBuffer()`` API
- [x] tests for limited API
- [x] ``make regen-limited-abi``
- [x] documentation update
- [ ] export ``PyPickleBuffer*()`` API ???
This commit is contained in:
Christian Heimes 2022-02-02 17:03:10 +02:00 committed by GitHub
parent 08f8301b21
commit f66c857572
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 308 additions and 131 deletions

View file

@ -94,6 +94,14 @@ EXPORT_FUNC(PyArg_ValidateKeywordArguments)
EXPORT_FUNC(PyArg_VaParse)
EXPORT_FUNC(PyArg_VaParseTupleAndKeywords)
EXPORT_FUNC(PyBool_FromLong)
EXPORT_FUNC(PyBuffer_FillContiguousStrides)
EXPORT_FUNC(PyBuffer_FillInfo)
EXPORT_FUNC(PyBuffer_FromContiguous)
EXPORT_FUNC(PyBuffer_GetPointer)
EXPORT_FUNC(PyBuffer_IsContiguous)
EXPORT_FUNC(PyBuffer_Release)
EXPORT_FUNC(PyBuffer_SizeFromFormat)
EXPORT_FUNC(PyBuffer_ToContiguous)
EXPORT_FUNC(PyByteArray_AsString)
EXPORT_FUNC(PyByteArray_Concat)
EXPORT_FUNC(PyByteArray_FromObject)
@ -352,6 +360,7 @@ EXPORT_FUNC(PyMem_Malloc)
EXPORT_FUNC(PyMem_Realloc)
EXPORT_FUNC(PyMember_GetOne)
EXPORT_FUNC(PyMember_SetOne)
EXPORT_FUNC(PyMemoryView_FromBuffer)
EXPORT_FUNC(PyMemoryView_FromMemory)
EXPORT_FUNC(PyMemoryView_FromObject)
EXPORT_FUNC(PyMemoryView_GetContiguous)
@ -426,8 +435,10 @@ EXPORT_FUNC(PyObject_CallMethodObjArgs)
EXPORT_FUNC(PyObject_CallNoArgs)
EXPORT_FUNC(PyObject_CallObject)
EXPORT_FUNC(PyObject_Calloc)
EXPORT_FUNC(PyObject_CheckBuffer)
EXPORT_FUNC(PyObject_CheckReadBuffer)
EXPORT_FUNC(PyObject_ClearWeakRefs)
EXPORT_FUNC(PyObject_CopyData)
EXPORT_FUNC(PyObject_DelItem)
EXPORT_FUNC(PyObject_DelItemString)
EXPORT_FUNC(PyObject_Dir)
@ -445,6 +456,7 @@ EXPORT_FUNC(PyObject_GenericSetDict)
EXPORT_FUNC(PyObject_GetAIter)
EXPORT_FUNC(PyObject_GetAttr)
EXPORT_FUNC(PyObject_GetAttrString)
EXPORT_FUNC(PyObject_GetBuffer)
EXPORT_FUNC(PyObject_GetItem)
EXPORT_FUNC(PyObject_GetIter)
EXPORT_FUNC(PyObject_HasAttr)