New submission from Jean-Paul Calderone <exar...@divmod.com>: Here's a transcript demonstrating the disagreement:
exar...@charm:~$ mkdir warningexample exar...@charm:~$ cd warningexample/ exar...@charm:~/warningexample$ mkdir foo exar...@charm:~/warningexample$ touch foo/__init__.py exar...@charm:~/warningexample$ cat > foo/bar.py import warnings def foo(): warnings.warn("foo") exar...@charm:~/warningexample$ python -c 'import foo.bar' exar...@charm:~/warningexample$ mv foo bar exar...@charm:~/warningexample$ python -c 'import bar.bar; bar.bar.foo()' bar/bar.py:3: UserWarning: foo warnings.warn("foo") exar...@charm:~/warningexample$ python -c 'import bar.bar, inspect; print inspect.getabsfile(bar.bar.foo)' /home/exarkun/warningexample/foo/bar.py exar...@charm:~/warningexample$ Notice that the warning is emitted for the file bar/bar.py but the inspect module claims that the function which emitted the warning is defined in /home/exarkun/warningexample/foo/bar.py. It seems that the warning system has somehow noticed that the .pyc file has the wrong source file listed and has figured out the correct file name, whereas the inspect module is blindly following the contents of the .pyc file. It would be great if the inspect module were at least as good at figuring out filenames as the warnings system. ---------- components: Library (Lib) messages: 79159 nosy: exarkun severity: normal status: open title: warnings system and inspect module disagree about type: behavior _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4845> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com