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". Esta función siempre finaliza con éxito.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

   Retorna un puntero a la copia privada de la vista de memoria del
   búfer del exportador. *mview* **debe** ser una instancia de
   *memoryview*; este macro no verifica su tipo, debe hacerlo usted
   mismo o correrá el riesgo de fallas.

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*.
