From 723b4c478665828ec14e40ec3f7227358103835f Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Wed, 31 Aug 2022 23:14:39 +1000 Subject: [PATCH] Coding style - Avoid allocating list. - No change to speed. --- termstr/termstr.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/termstr/termstr.py b/termstr/termstr.py index 887fbc0..4e868bd 100644 --- a/termstr/termstr.py +++ b/termstr/termstr.py @@ -173,13 +173,13 @@ _ZERO_WIDTH_SPACE = "\u200b" def _pad_wide_chars(str_): - parts = [] - last_width = None - for char in str_: - width = cwcwidth.wcwidth(char) - parts.append(f"{_ZERO_WIDTH_SPACE}{char}" if width != 0 and last_width == 2 else char) - last_width = width - padded_str = "".join(parts) + def parts(): + last_width = None + for char in str_: + width = cwcwidth.wcwidth(char) + yield f"{_ZERO_WIDTH_SPACE}{char}" if width != 0 and last_width == 2 else char + last_width = width + padded_str = "".join(parts()) if len(padded_str) > 0 and cwcwidth.wcwidth(padded_str[-1]) == 2: padded_str += _ZERO_WIDTH_SPACE return str_ if len(padded_str) == len(str_) else padded_str