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

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

int PyMapping_Check(PyObject *o)

   Renvoie "1" si l'objet prend en charge le protocole de
   correspondance ou le découpage en tranches et "0" sinon. Notez
   qu'elle renvoie "1" pour les classes Python avec une méthode
   "__getitem__()" puisque, dans le cas général, il est impossible de
   déterminer quel type de clef est pris en charge. Cette fonction ne
   provoque jamais d'erreur.

Py_ssize_t PyMapping_Size(PyObject *o)
Py_ssize_t PyMapping_Length(PyObject *o)

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

   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)

   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)

   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)

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

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

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

   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.
