4.7.1.1 Objets Codec

La classe Codec définit ces méthodes qui définissent également les interfaces des fonctions de l'encodeur et du décodeur apatrides:

encode(input[, errors])
Encode l'objet input et renvoie un tuple (objet de sortie, longueur consommée).

errors définit la gestion d'erreurs à appliquer. Il vaut par défaut 'strict'.

La méthode peut ne pas stocker l'état dans l'instance de Codec. Employer StreamCodec pour les codecs qui doivent garder l'état afin de rendre l'encodage/décodage efficace.

L'encodeur doit pouvoir manipuler la longueur zéro en entrée et renvoyer un objet vide du type de l'objet de sortie dans cette situation.

decode(input[, errors])
Décode l'objet input et renvoie un tuple (objet de sortie, longueur consommée).

input doit être un objet qui fournit le slot de tampon bf_getreadbuf. Les chaines de Python, les objets tampons et les fichiers mappés en mémoire sont des exemples des objets fournissant ce slot.

errors définit la gestion d'erreurs à appliquer. Par défaut 'strict'.

La méthode peut ne pas stocker l'état dans l'instance de Codec. Employer StreamCodec pour les codecs qui doivent garder l'état afin de rendre l'encodage/décodage efficace.

Le décodeur doit pouvoir manipuler la longueur zéro en entrée et renvoyer un objet vide du type de l'objet de sortie dans cette situation.

Les classes StreamWriter et StreamReader fournissent les interfaces génériques qui peuvent être employées pour implémenter très facilement de nouveaux sous-modules d'encodage. Voir encodings.utf_8 pour un exemple sur la façon dont ceci est fait.