Protocole de correspondance
***************************

Voir aussi "PyObject_GetItem()", "PyObject_SetItem()" et
"PyObject_DelItem()".

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

   Return "1" if the object provides the mapping protocol or supports
   slicing, and "0" otherwise.  Note that it returns "1" for Python
   classes with a "__getitem__()" method, since in general it is
   impossible to determine what type of keys the class supports. This
   function always succeeds.

Py_ssize_t PyMapping_Size(PyObject *o)
Py_ssize_t PyMapping_Length(PyObject *o)
    * Part of the Stable ABI.*

   Renvoie le nombre de clefs dans l'objet *o* et "-1" en cas d'échec.
   C'est l'équivalent de l'expression Python "len(o)".

PyObject *PyMapping_GetItemString(PyObject *o, const char *key)
    *Return value: New reference.** Part of the Stable ABI.*

   Renvoie les éléments de *o* qui correspondent à la chaîne *key* ou
   *NULL* en cas d'échec. C'est l'équivalent de l'expression Python
   "o[key]". Voir aussi "PyObject_GetItem()".

int PyMapping_SetItemString(PyObject *o, const char *key, PyObject *v)
    * Part of the Stable ABI.*

   Fait correspondre la chaîne *key* à la valeur *v* dans l'objet *o*.
   Renvoie "-1" en cas d'échec. C'est l'équivalent de la commande
   Python "o[key] = v". Voir aussi "PyObject_SetItem()". Cette
   fonction *ne vole pas* de référence à *v*.

int PyMapping_DelItem(PyObject *o, PyObject *key)

   Supprime la correspondance associée à l'objet *key* dans l'objet
   *o*. Renvoie "-1" en cas d'échec. C'est l'équivalent de la commande
   Python "del o[key]". C'est un alias pour "PyObject_DelItem()".

int PyMapping_DelItemString(PyObject *o, const char *key)

   Supprime la correspondance associée à la chaîne *key* dans l'objet
   *o*. Renvoie "-1" en cas d'échec. C'est l'équivalent de la commande
   Python "del o[key]".

int PyMapping_HasKey(PyObject *o, PyObject *key)
    * Part of the Stable ABI.*

   Renvoie "1" si l'objet de correspondance possède une clef *key* et
   "0" sinon. C'est l'équivalent de l'expression Python "key in o".
   Cette fonction ne provoque jamais d'erreur.

   Notez que les exceptions qui surviennent pendant l'appel de la
   méthode "__getitem__()" seront supprimées. Pour obtenir le rapport
   d'erreur, utilisez plutôt "PyObject_GetItem()".

int PyMapping_HasKeyString(PyObject *o, const char *key)
    * Part of the Stable ABI.*

   Renvoie "1" si l'objet de correspondance possède une clef *key* et
   "0" sinon. C'est l'équivalent de l'expression Python "key in o".
   Cette fonction ne provoque jamais d'erreur.

   Notez que les exceptions qui surviennent en créant une chaîne de
   caractères temporaire pendant l'appel de la méthode "__getitem__()"
   seront supprimées. Pour obtenir le rapport d'erreur, utilisez
   plutôt "PyMapping_GetItemString()".

PyObject *PyMapping_Keys(PyObject *o)
    *Return value: New reference.** Part of the Stable ABI.*

   Renvoie la liste des clefs dans l'objet *o*. En cas d'échec,
   renvoie *NULL*.

   Modifié dans la version 3.7: Auparavant, la fonction renvoyait une
   liste ou un *n*-uplet.

PyObject *PyMapping_Values(PyObject *o)
    *Return value: New reference.** Part of the Stable ABI.*

   Renvoie la liste des valeurs dans l'objet *o*. En cas d'échec,
   renvoie *NULL*.

   Modifié dans la version 3.7: Auparavant, la fonction renvoyait une
   liste ou un *n*-uplet.

PyObject *PyMapping_Items(PyObject *o)
    *Return value: New reference.** Part of the Stable ABI.*

   Renvoie la liste des éléments dans l'objet *o*, où chaque élément
   est un n-uplet contenant une paire clef-valeur. En cas d'échec,
   renvoie *NULL*.

   Modifié dans la version 3.7: Auparavant, la fonction renvoyait une
   liste ou un *n*-uplet.
