Quando si devono identificare delle cose (come ad esempio i nomi degli host) in Internet, è spesso necessario confrontare queste identificazioni attraverso un meccanismo di ``uguaglianza''. Il modo con cui questo confronto viene effettuato può dipendere dal dominio dell'applicazione, per esempio se deve essere sensibile a maiuscole e minuscole o meno. Può anche risultare necessario restringere il campo delle possibili identificazioni, per consentire le identificazoni composte di soli caratteri ``stampabili''.
La RFC 3454 definisce una procedura per ``preparare'' le stringhe
Unicode nei protocolli internet. Prima di inviare le stringhe al
cavo, queste vengono elaborate dalla procedura di preparazione, dopo la
quale si trovano in una certa forma normalizzata. La RFC definisce un
insieme di tabelle, che possono essere combinate in profili. Ogni
profilo deve definire quale tabella utilizzare, e quali altre
parti facoltative della procedura stringprep
devono entrare a far
parte del profilo. Un esempio di un profilo di stringprep
è
nameprep
, che viene utilizzata per i nomi di dominio
internazionalizzati.
Il modulo stringprep espone solo le tabelle dell'RFC 3454.
Poiché queste tabelle sarebbero molto grandi da rappresentare come
dizionari o liste, il modulo usa internamente il database dei
caratteri Unicode. Lo stesso codice sorgente del modulo viene generato
utilizzando l'utility mkstringprep.py
.
Come risultato, queste tabelle vengono esposte come funzioni, non come strutture dati. Ci sono due tipi di tabelle nella RFC: insiemi e mappe. Per un insieme, stringprep fornisce la ``funzione caratteristica'', per esempio una funzione che restituisce vero se il parametro è parte dell'insieme. Per le mappe, fornisce la funzione di mappatura: data la chiave, restituisce il valore associato. Di seguito una lista di tutte le funzioni disponibili nel modulo.
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
code) |
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.