Guido van Rossum <[email protected]> added the comment:
Aha! So the traceback module does have a difference.
First, if the offset points inside the text, there's no difference:
>>> raise SyntaxError("message", ("<file>", 1, 4, "text"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<file>", line 1
text
^
SyntaxError: message
traceback.print_exception(SyntaxError, SyntaxError("message", ("<file>", 1, 4,
"text")), None)
File "<file>", line 1
text
^
SyntaxError: message
>>>
But if the offset points past the text, there's a difference:
>>> raise SyntaxError("message", ("<file>", 1, 5, "text"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<file>", line 1
text
^
SyntaxError: message
>>> traceback.print_exception(SyntaxError, SyntaxError("message", ("<file>", 1,
>>> 5, "text")), None)
File "<file>", line 1
text
^
SyntaxError: message
>>>
And even:
>>> raise SyntaxError("message", ("<file>", 1, 10, "text"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<file>", line 1
text
^
SyntaxError: message
>>> traceback.print_exception(SyntaxError, SyntaxError("message", ("<file>", 1,
>>> 10, "text")), None)
File "<file>", line 1
text
^
SyntaxError: message
>>>
I wonder if we need to support the final case? It seems clear to me that if the
col_offset points just past the text, we should display a caret just past the
text. (I wonder if this might be an off-by-one issue caused by confusion about
0-based vs. 1-based offsets.)
But if the col_offset points way past the text, what should happen? The
clipping there seems reasonable.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40546>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com