Il filtro controlla se gli avvertimenti devono essere ignorati, stampati, o considerati errori (sollevando un'eccezione).
Concettualmente, il filtro mantiene una lista ordinata di specificazioni; ciascun avvertimento viene confrontato con ogni filtro della lista delle specificazioni fino a che non viene trovata una corrispondenza; la corrispondenza ne determina la tipologia. Ogni elemento della lista è una tupla della forma (action, message, category, module, lineno), dove:
| Value | Disposition |
|---|---|
"error" |
converte gli avvertimenti corrispondenti in eccezioni |
"ignore" |
non stampa mai gli avvertimenti corrispondenti |
"always" |
stampa sempre gli avvertimenti corrispondenti |
"default" |
stampa la prima occorrenza degli avvertimenti corrispondenti per ogni punto da cui l'avvertimento viene emesso |
"module" |
stampa la prima occorrenza dell'avvertimento corrispondente, per ogni modulo da cui l'avvertimento viene emesso |
"once" |
stampa solo la prima occorrenza dell'avvertimento corrispondente, indipendentemente dal punto da cui proviene |
0 per corrispondere a tutti i numeri di linea
Poiché la classe Warning deriva dalla classe built-in
Exception, per modificare un avvertimento in un errore
sollevate semplicemente la categoria category(message).
Il filtro degli avvertimenti viene inizializzato dall'opzione -W
passata alla riga di comando dell'interprete Python. L'interprete
salva gli argomenti per tutte le opzioni -W senza
interpretarle in sys.warnoptions; il modulo warnings
li interpreta alla loro prima importazione (le opzioni non valide
vengono ignorate, dopo la stampa di un messaggio su sys.stderr).
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.