Objetos MemoryView
******************

Um objeto de "memoryview" expõe a interface de buffer a nível de C
como um objeto Python que pode ser passado como qualquer outro objeto.

PyObject *PyMemoryView_FromObject(PyObject *obj)

   Cria um objeto de memoryview a partir de um objeto que fornece a
   interface do buffer. Se *obj* tiver suportea exportações de buffer
   graváveis, o objeto memoryview será de leitura/gravação; caso
   contrário, poderá ser somente leitura ou leitura/gravação, a
   critério do exportador.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)

   Cria um objeto de memoryview usando *mem* como o buffer subjacente.
   *flags* pode ser um dos seguintes "PyBUF_READ" ou "PyBUF_WRITE".

   Novo na versão 3.3.

PyObject *PyMemoryView_FromBuffer(Py_buffer *view)

   Cria um objeto de memoryview envolvendo a estrutura de buffer
   *view* fornecida. Para buffers de bytes simples,
   "PyMemoryView_FromMemory()" é a função preferida.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)

   Cria um objeto de memoryview para um pedaço *contiguous* de memória
   (na ordem 'C' ou 'F'ortran, representada por *order*) a partir de
   um objeto que define a interface do buffer. Se a memória for
   contígua, o objeto de memoryview apontará para a memória original.
   Caso contrário, é feita uma cópia e a visualização da memória
   aponta para um novo objeto de bytes.

int PyMemoryView_Check(PyObject *obj)

   Retorna true se o objeto *obj* for um objeto de memoryview.
   Atualmente, não é permitido criar subclasses de "memoryview".

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

   Retorna um ponteiro para a cópia privada da memória do buffer do
   exportador. *mview* **deve** ser uma instância de memoryview; Se
   essa macro não verificar seu tipo, faça você mesmo ou corre o risco
   de travar.

Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)

   Return either a pointer to the exporting object that the memoryview
   is based on or *NULL* if the memoryview has been created by one of
   the functions "PyMemoryView_FromMemory()" or
   "PyMemoryView_FromBuffer()". *mview* **must** be a memoryview
   instance.
