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

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

int PyMapping_Check(PyObject *o)

   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)

   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.
