Brett Cannon added the comment:

Probably need to introduce a new keyword argument just for deprecated imports 
or some helper function in importlib to get the stack depth right (else there 
is a risk of breaking the stack depth in any minor release whenever importlib's 
depth shifts). Something like the following should be enough (obviously done in 
warnings instead of per-file):

try:
    level = 1
    while True:
        frame = sys._getframe(level)
        print(frame.f_code.co_filename)
        if '_bootstrap' not in frame.f_code.co_filename:
            break
        level += 1
except ValueError:
    pass
print(sys._getframe(2).f_code.co_filename)
warnings.warn("the imp module is deprecated in favour of importlib; "
              "see the module's documentation for alternative uses",
              PendingDeprecationWarning, stacklevel=level+1)

Otherwise the depths should just go back to what they were at.

----------
nosy: +larry
priority: normal -> release blocker
stage:  -> test needed
type:  -> behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23810>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to