New submission from Guido van Rossum <gu...@python.org>:
The traceback module formats several edge cases of SyntaxError different than CPython's default formatting. - There's an off-by-one error if the column offset (printed as a caret) points past the last character (example: 'a +='). The clipping is wrong and the caret points to the last character. - If the offset is <= 0, it appears the code silently adds the length of the source text. - The system formatting suppresses the caret if the offset is -1; the only way to suppress the caret with the traceback module is setting the offset to None (or setting the source text to None). - The system formatting can position the caret way past the end of the source text; the traceback module clips (also see the first bullet). I propose to make the traceback module behave the same way as the system module in all cases. I also propose to make both suppress the caret if the offset is <= 0. Finally I propose to make the system formatting limit the offset to just past the end of the source text. I propose not to bother changing anything in 3.8 or before. ---------- messages: 368759 nosy: gvanrossum, lys.nikolaou, pablogsal priority: normal severity: normal status: open title: Make traceback module's formatting of SyntaxError more similar to system formatting versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40612> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com