9.13 distutils.util -- Altre funzionalit� utili

Questo modulo contiene altri componenti e parti che non rientrano in nessun altro modulo di utility.

get_platform( )
Restituisce una stringa che identifica la piattaforma corrente. Questa viene utilizzata principalmente per distinguere le directory di build specifiche per la piattaforma e la distribuzione compilata specifica per la piattaforma. Tipicamente include il nome e la versione del sistema operativo e l'architettura (come fornito da 'os.uname()'), sebbene l'informazione esatta dipenda dal sistema operativo; per esempio per IRIX l'architettura non � particolarmente importante (IRIX gira solo su hardware SGI), ma per Linux la versione del kernel � oggettivamente importante.

Esempio di valori restituiti:

Per piattaforme non POSIX, attualmente viene semplicemente restituito sys.platform.

convert_path( pathname)
Restituisce 'pathname' come un nome che � utilizzabile nel filesystem nativo, per esempio lo divide con '/' e restituisce tutto insieme usando il separatore di directory corrente. È necessario perch� i nomi dei file nello script di setup vengono sempre indicati in stile Unix e devono essere convertiti nella convenzione locale prima di poterli utilizzare nel filesystem. Solleva l'eccezione ValueError su sistemi non Unix se pathname inizia o finisce con una barra obliqua.

change_root( new_root, pathname)
Restituisce pathname con new_root attaccato. Se pathname � relativo, questo � equivalente a "os.path.joinnew_root,pathname". Altrimenti, richiede che pathname diventi relativo e quindi unisca i due, cosa utile in DOS/Windows e Mac OS.

check_environ( )
Assicura che 'os.environ' abbia tutte le variabili di ambiente che noi indichiamo all'utente come utilizzabili nei file di configurazione, opzioni da riga di comando, etc. Attualmente questo include:

subst_vars( s, local_vars)
Esegue la sostituzione delle variabili in stile shell/Perl su s. Ogni occorrenza di $ seguita da un nome viene considerata una variabile e la variabile viene sostituita dal valore trovato nel dizionario local_vars, o in os.environ se il primo controllo/incrementato per garantire che contenga alcuni valori: si veda check_environ(). Solleva ValueError per ogni variabile non trovata sia in local_vars o in os.environ.

Si noti che questo non � una funzione di interpolazione di stringhe completamente fledged. Una valida $variable pu� consistere solo di caratteri maiuscoli e minuscoli, numeri e un underscore. Non � disponibile nessuno stile di quoting { } o .

grok_environment_error( exc[, prefix=tex2html_deferred"'error: '"])
Genera un utile messaggio di errore dall'oggetto eccezione EnvironmentError (IOError o OSError). Gestisce gli stili di Python 1.5.1 e successivi e fa ci� che pu� per comunicare con gli oggetti eccezione che hanno un corrispondente file con nome (questo accade quando l'errore coinvolge due file in un'unica operazione, come nel caso di rename() o link()). Restituisce il messaggio di errore come una stringa con prefisso aggiunto da prefix.

split_quoted( s)
Suddivide una stringa in sintonia con le regole tipiche della shell Unix per virgolette e backslash. In breve: le parole vengono delimitate da uno spazio, quando questo non � anticipato da un backslash, o all'interno di una stringa delimitata da virgolette. Singole e doppie virgolette sono equivalenti ed i caratteri che compongono le virgolette possono essere anticipati da un backslash. Il backslash viene rimosso da ogni sequenza di caratteri preceduti proprio dal backslash, lasciando solamente il carattere. I caratteri che compongono le virgolette vengono eliminate da ogni stringa delimitata. Restituisce una lista di termini.

execute( func, args[, msg=None, verbose=0, dry_run=0])
Esegue alcune azioni che interessano il mondo esterno (per esempio, scrivere nel filesystem). Alcune azioni sono speciali perch� vengono disabilitate dal flag dry_run. Questo metodo si prende carico di fare attenzione a tutti i particolari per l'utente; tutto quello che si deve fare � fornire la funzione da chiamare ed una tupla-argomento relativa (per incorporare l' ``azione esterna'' da eseguire) ed un messaggio facoltativo da stampare.

strtobool( val)
Converte una rappresentazione stringa di stato in vero (1) o falso(0).

I valori considerati vero sono y, yes, t, true, on e 1; i valori considerati falso sono n, no, f, false, off e 0. Solleva ValueError se val � qualsiasi altra cosa.

byte_compile( py_files[, optimize=0, force=0, prefix=None, base_dir=None, verbose=1, dry_run=0, direct=None])
Compila a livello di bytecode, una collezione di sorgenti Python in file .pyc o .pyo nella stessa directory. py_files � una lista di file da compilare; ogni file che non finisce in .py viene silenziosamente saltato. optimize deve essere uno dei seguenti:

Se force � vera, tutti i file vengono ricompilati, indipendentemente dall'ora.

Il nome del file del sorgente codificato in ogni file bytecode predefinito, viene chiamato con i nomi dei file elencati in py_files; questi si possono modificare con prefix e basedir. prefix � una stringa che verr� rimossa da ogni nome di file sorgente e base_dir � un nome di directory che verr� aggiunto all'inizio del nome (dopo che prefix � stato rimosso). prefix e base_dir possono essere indicati singolarmente o entrambi (o nessuno).

Se dry_run viene impostato a vero, non esegue niente che potrebbe interessare il filesystem.

La compilazione in bytecode viene fatta direttamente in questo processo di interpretazione con il modulo standard py_compile o indirettamente predisponendo uno script temporaneo ed eseguendolo successivamente. Normalmente si pu� lasciare che byte_compile() si occupi di usare la compilazione diretta o meno (si veda il sorgente per i dettagli). L'opzione direct viene usata dallo script generato nel modo indiretto; finch� non si sa cosa si sta facendo, � preferibile lasciarlo impostato a None.

rfc822_escape( header)
Restituisce una versione di header con i simboli di escape inseriti per la sua inclusione in un'intestazione RFC 822, assicurandosi che ci siano 8 spazi dopo ogni nuova riga. Si noti che non viene effettuata nessun'altra modifica della stringa.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.