[issue38197] Meaning of tracebacklimit differs between sys.tracebacklimit and traceback module

2020-11-04 Thread Carl Friedrich Bolz-Tereick


Carl Friedrich Bolz-Tereick  added the comment:

It's still inconsistent between the two ways to get a traceback, and the 
inconsistency is not documented.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38197] Meaning of tracebacklimit differs between sys.tracebacklimit and traceback module

2020-11-04 Thread Irit Katriel

Irit Katriel  added the comment:

If you change your script to do
sys.tracebacklimit = abs(limit)
and run it with arg -3, then you get the output you expect:

C:\Users\User\src\cpython>python.bat x.py -3
Running Release|Win32 interpreter...
limit -3
from traceback module:
Traceback (most recent call last):
  File "C:\Users\User\src\cpython\x.py", line 14, in x3
x2()
  File "C:\Users\User\src\cpython\x.py", line 12, in x2
x1()
  File "C:\Users\User\src\cpython\x.py", line 10, in x1
1 / 0
ZeroDivisionError: division by zero

from interpreter:
Traceback (most recent call last):
  File "C:\Users\User\src\cpython\x.py", line 14, in x3
x2()
  File "C:\Users\User\src\cpython\x.py", line 12, in x2
x1()
  File "C:\Users\User\src\cpython\x.py", line 10, in x1
1 / 0
ZeroDivisionError: division by zero


The documentation for traceback mentions the possibility of using negative 
limits and their meaning:

Print up to limit stack trace entries from traceback object tb (starting from 
the caller’s frame) if limit is positive. Otherwise, print the last abs(limit) 
entries. 

https://docs.python.org/3/library/traceback.html#traceback.print_tb

--
nosy: +iritkatriel
versions: +Python 3.10, Python 3.8, Python 3.9 -Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38197] Meaning of tracebacklimit differs between sys.tracebacklimit and traceback module

2019-09-17 Thread Carl Friedrich Bolz-Tereick


New submission from Carl Friedrich Bolz-Tereick :

The meaning of sys.tracebacklimit seems to be different than the meaning of the 
various limit parameters in the traceback module. One shows the top n stack 
frames, the other the bottom n.

Is this intentional, and if yes, is that difference documented somewhere? (it 
came up because PyPy just uses the traceback module and has no equivalent of 
PyTraceBack_Print).

See the attached script to understand the problem. The script formats the same 
exception twice, once with the traceback module, once by the interpreter. I 
would have expected them to look the same for all limits, but instead:

$ ./python /tmp/x.py 3
limit 3
from traceback module:
Traceback (most recent call last):
  File "/tmp/x.py", line 19, in 
main()
  File "/tmp/x.py", line 16, in main
x3()
  File "/tmp/x.py", line 14, in x3
x2()
ZeroDivisionError: division by zero

from interpreter:
Traceback (most recent call last):
  File "/tmp/x.py", line 14, in x3
x2()
  File "/tmp/x.py", line 12, in x2
x1()
  File "/tmp/x.py", line 10, in x1
1 / 0
ZeroDivisionError: division by zero

--
files: x.py
messages: 352628
nosy: Carl.Friedrich.Bolz
priority: normal
severity: normal
status: open
title: Meaning of tracebacklimit differs between sys.tracebacklimit and 
traceback module
versions: Python 3.7
Added file: https://bugs.python.org/file48610/x.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com