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

Reply via email to