Sto emettendo molti avvisi in un validatore e vorrei eliminare tutto in stdout tranne il messaggio fornito a warnings.warn()
.Python: stampa solo il messaggio sugli avvisi
Vale a dire, ora vedo questo:
./file.py:123: UserWarning: My looong warning message
some Python code
mi piacerebbe vedere questo:
My looong warning message
Edit 2: Overriding warnings.showwarning()
si è rivelato il lavoro:
def _warning(
message,
category = UserWarning,
filename = '',
lineno = -1):
print(message)
...
warnings.showwarning = _warning
warnings.warn('foo')
Hai letto il link? E cito: "Puoi sostituire questa funzione con un'implementazione alternativa assegnando a warnings.showwarning.". Il manuale * stesso * consiglia di monkeypatch il modulo. –
non ti preoccupare, è perfettamente normale la procedura python, non è affatto drastica. –