Objetos de vista de memoria (MemoryView)

Un objeto memoryview expone la interfaz de búfer a nivel de C como un objeto Python que luego puede pasarse como cualquier otro objeto.

PyObject *PyMemoryView_FromObject(PyObject *obj)
Return value: New reference.

Crea un objeto de vista de memoria memoryview a partir de un objeto que proporciona la interfaz del búfer. Si obj admite exportaciones de búfer de escritura, el objeto de vista de memoria será de lectura/escritura, de lo contrario puede ser de solo lectura o de lectura/escritura a discreción del exportador.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Return value: New reference.

Crea un objeto de vista de memoria usando mem como el búfer subyacente. flags pueden ser uno de PyBUF_READ o PyBUF_WRITE.

Nuevo en la versión 3.3.

PyObject *PyMemoryView_FromBuffer(Py_buffer *view)
Return value: New reference.

Crea un objeto de vista de memoria que ajuste la estructura de búfer dada view. Para memorias intermedias de bytes simples, PyMemoryView_FromMemory() es la función preferida.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Return value: New reference.

Crea un objeto de vista de memoria memoryview para un fragmento de memoria contiguo (contiguous, en order “C” o “F” de Fortran) desde un objeto que define la interfaz del búfer. Si la memoria es contigua, el objeto de vista de memoria apunta a la memoria original. De lo contrario, se realiza una copia y la vista de memoria apunta a un nuevo objeto de bytes.

int PyMemoryView_Check(PyObject *obj)

Retorna verdadero si el objeto obj es un objeto de vista de memoria. Actualmente no está permitido crear subclases de memoryview.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

Return a pointer to the memoryview’s private copy of the exporter’s buffer. mview must be a memoryview instance; this macro doesn’t check its type, you must do it yourself or you will risk crashes.

Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)

Retorna un puntero al objeto de exportación en el que se basa la vista de memoria o NULL si la vista de memoria ha sido creada por una de las funciones PyMemoryView_FromMemory() o PyMemoryView_FromBuffer(). mview debe ser una instancia de memoryview.