stringprep
— Préparation des chaines de caractères internet¶
Code source : Lib/stringprep.py
Nommer les différentes choses d'internet (comme les hôtes) amène souvent au besoin de comparer ces identifiants, ce qui nécessite un critère d'« égalité ». La manière dont cette comparaison est effectuée dépend du domaine d'application, c'est-à-dire si elle doit être sensible à la casse ou non. Il peut être aussi nécessaire de restreindre les identifiants possibles, pour permettre uniquement les identifiants composés de caractères « imprimables ».
La RFC 3454 définit une procédure pour "préparer" des chaines de caractères Unicode dans les protocoles internet. Avant de passer des chaines de caractères sur le câble, elles sont traitées avec la procédure de préparation, après laquelle ils obtiennent une certaines forme normalisée. Les RFC définissent un lot de tables, qui peuvent être combinées en profils. Chaque profil doit définir quelles tables il utilise et quelles autres parties optionnelles de la procédure stringprep font partie du profil. Un exemple de profil stringprep est nameprep, qui est utilisé pour les noms de domaine internationalisés.
Le module stringprep
expose uniquement les tables de la RFC 3454. Comme ces tables seraient très grandes à représenter en tant que dictionnaires ou listes, le module utilise, en interne, la base de données des caractères Unicode. Le code source du module, lui-même, a été généré en utilisant l'utilitaire mkstringprep.py
.
As a result, these tables are exposed as functions, not as data structures.
There are two kinds of tables in the RFC: sets and mappings. For a set,
stringprep
provides the "characteristic function", i.e. a function that
returns True
if the parameter is part of the set. For mappings, it provides the
mapping function: given the key, it returns the associated value. Below is a
list of all functions available in the module.
-
stringprep.
in_table_a1
(code)¶ Détermine si le code est en table A.1 (points de code non-assigné dans Unicode 3.2).
-
stringprep.
in_table_b1
(code)¶ Détermine si le code est en table B.1 (habituellement mis en correspondance avec rien).
-
stringprep.
map_table_b2
(code)¶ Renvoie la valeur correspondante à code selon la table B.2 (mise en correspondance pour la gestion de la casse utilisée avec NFKC).
-
stringprep.
map_table_b3
(code)¶ Renvoie la valeur correspondante à code dans la table B.3 (mise en correspondance pour la gestion de la casse utilisée sans normalisation).
-
stringprep.
in_table_c11
(code)¶ Détermine si le code est dans la table C.1.1 (caractères d'espacement ASCII).
-
stringprep.
in_table_c12
(code)¶ Détermine si le code est dans la table C.1.2 (caractères d'espacement non ASCII).
-
stringprep.
in_table_c11_c12
(code)¶ Détermine si le code est dans la table C.1 (caractères d'espacement, union de C.1.1 et C.1.2).
-
stringprep.
in_table_c21
(code)¶ Détermine si le code est dans la table C.2.1 (caractères de contrôle ASCII).
-
stringprep.
in_table_c22
(code)¶ Détermine si le code est en table C.2.2 (caractères de contrôle non ASCII).
-
stringprep.
in_table_c21_c22
(code)¶ Détermine si le code est dans la table C.2 (caractères de contrôle, union de C.2.1 et C.2.2).
-
stringprep.
in_table_c3
(code)¶ Détermine si le code est en table C.3 (usage privé).
-
stringprep.
in_table_c4
(code)¶ Détermine si le code est dans la table C.4 (points de code non-caractère).
-
stringprep.
in_table_c5
(code)¶ Détermine si le code est en table C.5 (codes substituts).
-
stringprep.
in_table_c6
(code)¶ Détermine si le code est dans la table C.6 (Inapproprié pour texte brut).
-
stringprep.
in_table_c7
(code)¶ Détermine si le code est dans la table C.7 (inapproprié pour les représentations canonics1).
-
stringprep.
in_table_c8
(code)¶ Détermine si le code est dans la table C.8 (change de propriétés d'affichage ou sont obsolètes).
-
stringprep.
in_table_c9
(code)¶ Détermine si le code est dans la table C.9 (caractères de marquage).
-
stringprep.
in_table_d1
(code)¶ Détermine si le code est en table D.1 (caractères avec propriété bidirectionnelle "R" ou "AL").
-
stringprep.
in_table_d2
(code)¶ Détermine si le code est dans la table D.2 (caractères avec propriété bidirectionnelle "L").