how to suppress the "source code echo" output by warnings.warn("x")?

Peter Otten __peter__ at web.de
Fri May 19 13:57:02 EDT 2006


funkyj wrote:

> I've been googling around trying to find the answer to this question
> but all I've managed to turn up is a 2 year old post of someone else
> asking the same question (no answer though).

> jh> In the following
> jh>
> jh> import warnings
> jh> warnings.warn('change me')
> jh>
> jh> The warning is issued:
> jh>
> jh> hunter:~/python/test> python test.py
> jh> test.py:3: UserWarning: change me
> jh>   warnings.warn('change me')
> jh>
> jh> I want to supress the line echo.  Eg, I just want
> jh>
> jh> hunter:~/python/test> python test.py
> jh> test.py:3: UserWarning: change me
> jh>
> jh> How do I configure warnings to do this?
> 
> Perhaps this can't be done without rewriting the warning module?

How about monkey-patching?

import warnings

def formatwarning(message, category, filename, lineno):
    return  "%s:%s: %s: %s\n" % (filename, lineno, 
        category.__name__, message)

warnings.formatwarning = formatwarning

warnings.warn("so what")

Peter



More information about the Python-list mailing list