From: Terry Jan Reedy Date: Thu, 3 Feb 2022 03:12:38 +0000 (-0500) Subject: [3.9] bpo-45975: Use walrus operator for some idlelib while loops (GH-31083) X-Git-Tag: v3.9.11~100 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fafd2dadf63973a04f5693e5be19f3e7521c10d4;p=thirdparty%2FPython%2Fcpython.git [3.9] bpo-45975: Use walrus operator for some idlelib while loops (GH-31083) co-authored by Nick Drozd cherrypicked from 51a95be1d035a717ab29e98056b8831a98e61125 --- diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py index d34872b4396e..a94327533d86 100644 --- a/Lib/idlelib/pyparse.py +++ b/Lib/idlelib/pyparse.py @@ -179,14 +179,10 @@ class Parser: # Peeking back worked; look forward until _synchre no longer # matches. i = pos + 1 - while 1: - m = _synchre(code, i) - if m: - s, i = m.span() - if not is_char_in_string(s): - pos = s - else: - break + while (m := _synchre(code, i)): + s, i = m.span() + if not is_char_in_string(s): + pos = s return pos def set_lo(self, lo): diff --git a/Lib/idlelib/replace.py b/Lib/idlelib/replace.py index 6be034af9626..70d761db1263 100644 --- a/Lib/idlelib/replace.py +++ b/Lib/idlelib/replace.py @@ -156,11 +156,8 @@ class ReplaceDialog(SearchDialogBase): first = last = None # XXX ought to replace circular instead of top-to-bottom when wrapping text.undo_block_start() - while True: - res = self.engine.search_forward(text, prog, line, col, - wrap=False, ok=ok) - if not res: - break + while (res := self.engine.search_forward( + text, prog, line, col, wrap=False, ok=ok)): line, m = res chars = text.get("%d.0" % line, "%d.0" % (line+1)) orig = m.group() diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index dda9711dcf7a..4246f497cb38 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -468,9 +468,7 @@ class StdInputFile(StdioFile): result = self._line_buffer self._line_buffer = '' if size < 0: - while True: - line = self.shell.readline() - if not line: break + while (line := self.shell.readline()): result += line else: while len(result) < size: