Coding style

- Avoid allocating list.
- No change to speed.
This commit is contained in:
Andrew Hamilton 2022-08-31 23:14:39 +10:00
parent 1ac742c0bc
commit 723b4c4786

View file

@ -173,13 +173,13 @@ _ZERO_WIDTH_SPACE = "\u200b"
def _pad_wide_chars(str_): def _pad_wide_chars(str_):
parts = [] def parts():
last_width = None last_width = None
for char in str_: for char in str_:
width = cwcwidth.wcwidth(char) width = cwcwidth.wcwidth(char)
parts.append(f"{_ZERO_WIDTH_SPACE}{char}" if width != 0 and last_width == 2 else char) yield f"{_ZERO_WIDTH_SPACE}{char}" if width != 0 and last_width == 2 else char
last_width = width last_width = width
padded_str = "".join(parts) padded_str = "".join(parts())
if len(padded_str) > 0 and cwcwidth.wcwidth(padded_str[-1]) == 2: if len(padded_str) > 0 and cwcwidth.wcwidth(padded_str[-1]) == 2:
padded_str += _ZERO_WIDTH_SPACE padded_str += _ZERO_WIDTH_SPACE
return str_ if len(padded_str) == len(str_) else padded_str return str_ if len(padded_str) == len(str_) else padded_str