(I assume that this list is appropriate for this topic, but if it isn't, I will be grateful for being redirected to the appropriate place.)

It seems that warnings behave differently in Python 2 and Python 3. Consider the following script.

****************
def func():
   warnings.warn("Blabla", RuntimeWarning)

warnings.simplefilter("ignore")
func()
warnings.simplefilter("always")
func()
****************

When run with CPython 2.7, there is no output, when run with CPython 3.5, there is the following output:

****************
/tmp/test.py:4: RuntimeWarning: Blabla
 warnings.warn("Blabla", RuntimeWarning)
****************

Was there indeed a change of how warnings behave in Python 3? I searched, but couldn't find any documentation for this.

Understanding how warnings work is especially important when testing for them. This is how I stumbled across this, in case anyone is interested: https://gitlab.kwant-project.org/kwant/kwant/issues/1#note_2608

I also note that the current documentation still uses DeprecationWarning in the example of how to suppress a warning: https://docs.python.org/dev/library/warnings.html#temporarily-suppressing-warnings. Since DeprecationWarning is disabled by default in modern Python, perhaps a different warning would provide a better example?
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to