New submission from Thomas Haller <thom...@gmail.com>:
The line number for the frame object changed behaviour in 3.8. I am seeing this on Fedora rawhide, which ships "3.8.0~b4-1.fc32" package. That happens when wrapping lines for calling functions. Before, the line number sys._getframe(1).f_lineno indicate the last line. Now it is the first line. Reproducer: >>> #!/usr/bin/env python import sys def func(a, b, c, d): frame = sys._getframe(1) print('call: %s' % (a)) print('frame: %s' % (frame)) print('frame.f_code.co_name: %s' % (frame.f_code.co_name)) print('frame.f_lineno: %s' % (frame.f_lineno)) func('call 1, 1 line', 0, 1, 2) func('call 2, 2 lines', 0, 1, 2) func('call 3, 4 lines', 0, 1, 2) <<<< with python2 and python<=3.7, the line numbers are 16, 19, 24, respectively. With 3.8, it changes to 16, 18, 21. ---------- messages: 353279 nosy: Thomas Haller priority: normal severity: normal status: open title: sys._getframe(1).f_lineno changed behavior in 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38283> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com