Pickle buffer objects
Pickle buffer objects#
Added in version 3.8.
A "pickle.PickleBuffer" object wraps a buffer-providing object for out-of-band data transfer with the "pickle" module.
PyTypeObject PyPickleBuffer_Type
This instance of "PyTypeObject" represents the Python pickle buffer type. This is the same object as "pickle.PickleBuffer" in the Python layer.
int PyPickleBuffer_Check(PyObject *op)
Return true if op is a pickle buffer instance. This function always succeeds.
PyObject PyPickleBuffer_FromObject(PyObject obj)
Create a pickle buffer from the object obj.
This function will fail if obj doesn't support the buffer protocol.
On success, return a new pickle buffer instance. On failure, set an exception and return "NULL".
Analogous to calling "pickle.PickleBuffer" with obj in Python.
const Py_buffer PyPickleBuffer_GetBuffer(PyObject picklebuf)
Get a pointer to the underlying "Py_buffer" that the pickle buffer wraps.
The returned pointer is valid as long as picklebuf is alive and has not been released. The caller must not modify or free the returned "Py_buffer". If the pickle buffer has been released, raise "ValueError".
On success, return a pointer to the buffer view. On failure, set an exception and return "NULL".
int PyPickleBuffer_Release(PyObject *picklebuf)
Release the underlying buffer held by the pickle buffer.
Return "0" on success. On failure, set an exception and return "-1".
Analogous to calling "pickle.PickleBuffer.release()" in Python.