[New-bugs-announce] [issue45063] PEP 657 Fine Grained Error Locations: make the traceback less verbose when possible
STINNER Victor
report at bugs.python.org
Tue Aug 31 10:05:56 EDT 2021
New submission from STINNER Victor <vstinner at python.org>:
The PEP 657 introduced ^^^ in tracebacks. It is useful when the error happens on an sub-expression in a long line. Example:
File "/home/vstinner/python/main/Lib/ftplib.py", line 462, in retrlines
with self.transfercmd(cmd) as conn, \
^^^^^^^^^^^^^^^^^^^^^
But ^^^ makes the output more verbose and doesn't bring much value when the error concerns the whole line:
File "/home/vstinner/python/main/Lib/socket.py", line 845, in create_connection
raise err
^^^^^^^^^
Would it be possible to omit ^^^ when it concerns the whole line?
Full example (currently):
ERROR: test_retrlines (test.test_ftplib.TestFTPClass)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/python/main/Lib/test/test_ftplib.py", line 603, in test_retrlines
self.client.retrlines('retr', received.append)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/ftplib.py", line 462, in retrlines
with self.transfercmd(cmd) as conn, \
^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/ftplib.py", line 393, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/ftplib.py", line 354, in ntransfercmd
conn = socket.create_connection((host, port), self.timeout,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/socket.py", line 845, in create_connection
raise err
^^^^^^^^^
File "/home/vstinner/python/main/Lib/socket.py", line 833, in create_connection
sock.connect(sa)
^^^^^^^^^^^^^^^^
ConnectionRefusedError: [Errno 111] Connection refused
I would prefer:
ERROR: test_retrlines (test.test_ftplib.TestFTPClass)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/python/main/Lib/test/test_ftplib.py", line 603, in test_retrlines
self.client.retrlines('retr', received.append)
File "/home/vstinner/python/main/Lib/ftplib.py", line 462, in retrlines
with self.transfercmd(cmd) as conn, \
^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/ftplib.py", line 393, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/ftplib.py", line 354, in ntransfercmd
conn = socket.create_connection((host, port), self.timeout,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/python/main/Lib/socket.py", line 845, in create_connection
raise err
File "/home/vstinner/python/main/Lib/socket.py", line 833, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
In term of release process, can we change the traceback after Python 3.10.0 final? Or can we only change it in Python 3.11? I mark the issue as a release blocker, but I let Pablo (author of the PEP and Python 3.10 release manager) decide.
----------
components: Interpreter Core
messages: 400736
nosy: BTaskaya, lukasz.langa, pablogsal, vstinner
priority: release blocker
severity: normal
status: open
title: PEP 657 Fine Grained Error Locations: make the traceback less verbose when possible
versions: Python 3.11
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45063>
_______________________________________
More information about the New-bugs-announce
mailing list