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.