Les codecs définissent un ensemble de classes de bases qui définissent l'interface et peuvent également être employées pour écrire facilement ses propres codecs à utiliser en Python.
Chaque codec doit définir quatre interfaces pour le rendre utilisable comme codec dans Python: encodeur apatride, décodeur apatride, lecteur de flux et générateur de flux. Le lecteur et le générateur de flux réutilisent typiquement l'encodeur/decodeur apatride pour mettre en application les protocoles de fichier.
La classe de Codec définissent l'interface pour encoders/decoders apatride.
Pour simplifier et normaliser la gestion d'erreurs, les méthodes encode() et decode() peuvent mettre en application différents schémas de gestion d'erreurs en fournissant la chaine d' argument errors. Les valeurs suivantes sont définies et implémentées par tous les codecs standard de Python:
'strict' Lève ValueError (ou une sous-classe);
C'est la valeur par défaut.
'ignore' Ignore le caractère et continuent avec le suivant.
'replace' Remplace par un caractère de substitut approprié;
Python emploiera le CARACTÈRE DE RECHANGE officiel U+FFFD pour les
codecs Unicode intégrés.