Ce module définit les classes de bases pour les codecs (des encodeurs
et des décodeurs) standard de Python et fournit des accès aux registres
des codec internes de Python qui contrôlent le processus
de consultation de codec.
Il défini les fonctions suivantes :
encoder et decoder: Ce doit être des fonctions
ou des méthodes qui ont la même interface que les méthodes
encode()/decode() des instances de codec (voir
l'interface de codec). Ces functions/methodes sont supposées fonctionner
en mode apatride.
stream_reader et stream_writer: Ceux-ci doivent être
des fonctions d'usine fournissant l'interface suivante:
Les frabiques de fonctions doivent renvoyer des objets fournissant les
interfaces définies par les classes de base StreamWriter et
StreamReader, respectivement. Les flux de codecs peuvent
maintenir l'état.
Les valeurs possibles pour des erreurs sont Au cas où une fonction de recherche ne pourrait pas trouver un codage
donné, elle devrait renvoyer Les encodages sont d'abord recherchés dans le cache des registres.
S'ils ne sont pas trouvés, la liste des fonctions de recherche enregistrées
est balayée. Si aucun tuple de codecs n'est trouvé, LookupError
est levée. Autrement, le tuple de codecs
est stocké dans le cache et retourné à l'appelant.
Pour simplifier le travail avec les fichiers ou les flux codés, le
module définit également ces fonctions utilitaires :
Note: La version enveloppée acceptera seulement le format
d'objet défini par les codecs, c.-à-d. des objets Unicode pour la
plupart des codecs intégrés. La sortie est également
codec-dépendante et sera habituellement un objet Unicode aussi.
encoding spécifie l'encodage à utiliser pour le fichier.
errors peuvent être donnés pour définir la gestion
d'erreurs. Il vaut par défaut buffering a la même signification que pour la fonction
intégrée open(). Par défaut, les lignes sont bufferisées.
Les chaines écrites dans le fichier enveloppé sont interprétées selon l'
encodage input donné, puis écrites dans le fichier original comme
des chaines en utilisant l'encodage output. L'encodage
intermédiaire habituellement sera Unicode mais dépend des codecs
indiqués.
Si output n'est pas donné, il vaut par défaut input.
errors peuvent être donnés pour définir la gestion
d'erreurs. Il vaut par défaut Le module fournit également les constantes suivantes qui sont utiles
pour la lecture et l'écriture de fichiers dépendants de la plateforme:
register(search_function)
(encoder,
decoder, stream_reader, stream_writer) prenant les
arguments suivants:
factory(stream, errors='strict')
'strict'
(lever une exception en cas d'erreur de codage), 'replace'
(remplacer les données mal formées par un marqueur de substitut
approprié, tel que le "?") et 'ignore' (ignorer
les données mal formées et continuer sans davantage de communication
préalable).
None.
lookup(encoding)
open(filename, mode[, encoding[,
errors[, buffering]]])
'strict' ce qui cause la levée
de ValueError au cas où une erreur de codage se produirait.
EncodedFile(file, input[,
output[, errors]])
'strict', qui cause la levée de
ValueError au cas où une erreur d'encodage se produirait.
BOM
Sous-sections