jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1344799?usp=email )
Change subject: ui: Join transliteration output fragments
......................................................................
ui: Join transliteration output fragments
Collect ordinary characters and highlighted transliterations in a list
and join the output once. This avoids repeatedly copying the accumulated
text, including quadratic string concatenation on PyPy.
Preserve character context, encoding conversions and color markers.
Change-Id: Ia040d64a3ebea2d02f39d2cabf5f57cc7fb4ec27
---
M pywikibot/userinterfaces/terminal_interface_base.py
1 file changed, 4 insertions(+), 5 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/pywikibot/userinterfaces/terminal_interface_base.py
b/pywikibot/userinterfaces/terminal_interface_base.py
index e86e4b7..28a8ba6 100644
--- a/pywikibot/userinterfaces/terminal_interface_base.py
+++ b/pywikibot/userinterfaces/terminal_interface_base.py
@@ -291,7 +291,7 @@
codecedText = codecedText.encode(
self.transliteration_target,
'replace').decode(self.transliteration_target)
- transliteratedText = ''
+ parts = []
# Note: A transliteration replacement might be longer than the
# original character, e.g. ч is transliterated to ch.
prev = '-'
@@ -308,8 +308,7 @@
# transliteration was successful. The replacement
# could consist of multiple letters.
# mark the transliterated letters in yellow.
- transliteratedText = (
- f'{transliteratedText}'
+ parts.append(
f'<<lightyellow>>{transliterated}<<previous>>'
)
# memorize if we replaced a single letter by multiple
@@ -318,9 +317,9 @@
prev = transliterated[-1]
else:
# no need to try to transliterate.
- transliteratedText += char
+ parts.append(char)
prev = char
- text = transliteratedText
+ text = ''.join(parts)
if not targetStream:
targetStream = self.stderr
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1344799?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ia040d64a3ebea2d02f39d2cabf5f57cc7fb4ec27
Gerrit-Change-Number: 1344799
Gerrit-PatchSet: 2
Gerrit-Owner: Mahveotm <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]