"stringprep" --- Internet String Preparation
********************************************

**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.

The module "stringprep" only exposes the tables from **RFC 3454**. As
these tables would be very large to represent as dictionaries or
lists, the module uses the Unicode character database internally. The
module source code itself was generated using the "mkstringprep.py"
utility.

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").
