[Python-Dev] Make stacklevel=2 by default in warnings.warn() (original) (raw)
Victor Stinner victor.stinner at gmail.com
Mon Sep 21 09🔞28 CEST 2015
- Previous message (by thread): [Python-Dev] Make stacklevel=2 by default in warnings.warn()
- Next message (by thread): [Python-Dev] Make stacklevel=2 by default in warnings.warn()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2015-09-20 8:44 GMT+02:00 Serhiy Storchaka <storchaka at gmail.com>:
I propose to make the default value of stacklevel to be 2. I think that unlikely this will break existing code.
Consider this simple script:
import warnings warnings.warn("here")
Currrent output:
x.py:3: UserWarning: here warnings.warn("here")
=> it shows the script name (x.py), the line number and the line, as expected.
Now try stacklevel=2:
import warnings warnings.warn("here", stacklevel=2)
New output:
sys:1: UserWarning: here
"sys:1" is not really useful :-/
I would describe this as a regression, not an enhancement.
It's hard to find a "good" default value. It's better to always specify stacklevel :-)
Victor
- Previous message (by thread): [Python-Dev] Make stacklevel=2 by default in warnings.warn()
- Next message (by thread): [Python-Dev] Make stacklevel=2 by default in warnings.warn()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]