Ancien Protocole Tampon
***********************

Obsolète depuis la version 3.0.

Ces fonctions faisaient partie de l'API de l'ancien protocole de
tampons dans Python 2. Dans Python 3, ce protocole n'existe plus, mais
les fonctions sont toujours exposées pour simplifier le portage de
code Python 2.x. Elles se comportent comme une abstraction de
compatibilité du nouveau protocole de tampons, mais sans vous donner
de contrôle sur la durée de vie des ressources acquises lorsqu'un
tampon est exporté.

Il est donc recommandé d'appeler "PyObject_GetBuffer()" (ou les codes
"y*" ou "w*" à la famille de fonctions "PyArg_ParseTuple()") pour
obtenir une vue d'un tampon sur un objet, et "PyBuffer_Release()"
lorsque la vue peut être libérée.

int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
    * Part of the Stable ABI.*

   Retourne un pointeur vers un emplacement de mémoire en lecture
   seule utilisable en tant qu'entrée basée sur des caractères.
   L'argument *obj* doit prendre en charge l'interface de tampon de
   caractère à segment unique. En cas de succès, retourne "0", définit
   *buffer* à l'emplacement de la mémoire et *buffer_len* à la
   longueur de la mémoire tampon. Retourne "-1" et affecte une
   exception "TypeError" en cas d'erreur.

int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
    * Part of the Stable ABI.*

   Retourne un pointeur vers un emplacement de mémoire en lecture
   seule contenant des données arbitraires. L'argument *obj* doit
   prendre en charge l'interface de tampon lisible à segment unique.
   En cas de succès, retourne "0", définit *buffer* à l'emplacement de
   la mémoire et *buffer_len* à la longueur de la mémoire tampon.
   Renvoie "-1" et affecte l'exception "TypeError" en cas d'erreur.

int PyObject_CheckReadBuffer(PyObject *o)
    * Part of the Stable ABI.*

   Retourne "1" si *o* prend en charge l'interface de mémoire tampon
   lisible à segment unique. Sinon, renvoie "0". Cette fonction
   réussit toujours.

   Notez que cette fonction tente d'obtenir et de libérer une mémoire
   tampon, et les exceptions qui se produisent lors de l'appel des
   fonctions correspondantes seront supprimées. Pour que les erreurs
   vous soient signalées, utilisez "PyObject_GetBuffer()" à la place.

int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)
    * Part of the Stable ABI.*

   Retourne un pointeur vers un emplacement de mémoire accessible en
   écriture. L'argument *obj* doit prendre en charge l'interface de
   mémoire tampon de caractère à segment unique. En cas de succès,
   retourne "0", définit *buffer* à l'emplacement de la mémoire et
   *buffer_len* à la longueur de la mémoire tampon. Renvoie "-1" et
   affecte l'exception "TypeError" en cas d'erreur.
