Objets de type MemoryView
*************************

Un objet Python "memoryview" expose le protocole tampon du C. Cet
objet peut ensuite être passé comme n'importe quel objet.

PyObject *PyMemoryView_FromObject(PyObject *obj)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI.*

   Crée un objet *memoryview* à partir d'un objet implémentant le
   protocole tampon. Si *obj* permet d'exporter des tampons
   modifiables, l'objet *memoryview* crée acceptera la lecture et
   écriture, sinon l'objet crée est soit en lecture seule ou
   lecture/écriture, à la discrétion de l'*exporteur*.

PyBUF_READ

   Flag to request a readonly buffer.

PyBUF_WRITE

   Flag to request a writable buffer.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI
   since version 3.7.*

   Crée un objet *memoryview* utilisant *mem* comme un tampon sous-
   jacent. *flags* peut être "PyBUF_READ" ou "PyBUF_WRITE".

   Ajouté dans la version 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI
   since version 3.11.*

   Crée un objet *memoryview* à partir de la structure tampon *view*.
   Pour de simples tampons d'octets, "PyMemoryView_FromMemory()" est
   préférée.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI.*

   Crée un objet *memoryview* vers un segment de mémoire *contiguous*
   (organisé comme en "'C'" ou comme en "'F'" pour Fortran) à partir
   d'un objet qui expose le protocole tampon. Si la mémoire est
   contiguë, l'objet *memoryview* pointe vers la mémoire d'origine.
   Sinon une copie est faite et la *memoryview* pointe vers un nouvel
   objet *bytes*.

   *buffertype* can be one of "PyBUF_READ" or "PyBUF_WRITE".

int PyMemoryView_Check(PyObject *obj)

   Return true if the object *obj* is a memoryview object.  It is not
   currently allowed to create subclasses of "memoryview".  This
   function always succeeds.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

   Retourne un pointeur vers la copie privée du tampon de
   l'*exporteur* de *memoryview*. *mview* **doit** être une instance
   de *memoryview*; cette macro ne vérifie pas le type, vous devez le
   faire vous-même sinon vous pourriez subir un crash.

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

   Renvoie soit un pointeur vers l'objet exporté sur lequel est basé
   la *memoryview* ou "NULL" si la *memoryview* a été crée par
   "PyMemoryView_FromMemory()" ou "PyMemoryView_FromBuffer()". *mview*
   **doit** être une instance de *memoryview*.
