FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-130273: Fix incorrectly colored error locations when wide unicode characters exists by HarryLHW · Pull Request #130277 · python/cpython · GitHub

/ cpython Public

gh-130273: Fix incorrectly colored error locations when wide unicode characters exists - #130277

Closed
HarryLHW wants to merge 1 commit into
python:mainfrom
HarryLHW:traceback-colors
Closed

gh-130273: Fix incorrectly colored error locations when wide unicode characters exists#130277
HarryLHW wants to merge 1 commit into
python:mainfrom
HarryLHW:traceback-colors

Conversation

HarryLHW commented Feb 18, 2025
edited by bedevere-app Bot
Loading

Copy link
Copy Markdown
Contributor

Comment thread Lib/traceback.py
for i in range(start, len(line)):
if width <= 0:
return i, line[start:i]
width -= 2 if east_asian_width(line[i]) in _WIDE_CHAR_SPECIFIERS else 1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

does this correctly handle zero-width characters? e.g. the '\u0301' from 'cafe\u0301'

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

No.
However, _display_width() does not correctly handle zero-width characters for carets positions either.

>>> café = 1/0
Traceback (most recent call last):
  File "<python-input-0>", line 1, in <module>
    café = 1/0
            ~^~
ZeroDivisionError: division by zero
>>> 

They can be fixed in the same way. I wonder how I can find all the zero-width characters.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

It looks like there are many zero-width characters: https://wcwidth.readthedocs.io/en/latest/specs.html#width-of-0

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

This is how wcwidth implements wcswidth() and wcwidth(): https://wcwidth.readthedocs.io/en/latest/_modules/wcwidth/wcwidth.html#wcswidth
Maybe it is too complicated for our traceback? Could we have a simple way that can handle most of the cases?

ambv closed this Apr 7, 2026

ambv commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Going with #142529 instead.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants


Back | FazBrowse Home | New Git URL