From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sat, 3 Jan 2026 14:34:47 +0000 (+0100) Subject: [3.14] gh-136924: Suspend REPL colorizing when in a REPL interactive command (GH... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6eafcaee6486aa110f82e9e35514ca4d99f8b493;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-136924: Suspend REPL colorizing when in a REPL interactive command (GH-136926) (GH-143390) (cherry picked from commit 2c39b9d2f2ed8fb719d89f895dba114fb9096826) Co-authored-by: Olga Matoula Co-authored-by: Ɓukasz Langa --- diff --git a/Lib/_pyrepl/reader.py b/Lib/_pyrepl/reader.py index 0ebd9162eca4..9ab92f64d1ef 100644 --- a/Lib/_pyrepl/reader.py +++ b/Lib/_pyrepl/reader.py @@ -619,6 +619,16 @@ class Reader: setattr(self, arg, prev_state[arg]) self.prepare() + @contextmanager + def suspend_colorization(self) -> SimpleContextManager: + try: + old_can_colorize = self.can_colorize + self.can_colorize = False + yield + finally: + self.can_colorize = old_can_colorize + + def finish(self) -> None: """Called when a command signals that we're finished.""" pass diff --git a/Lib/_pyrepl/simple_interact.py b/Lib/_pyrepl/simple_interact.py index ff1bdab9fea0..6508f0233b96 100644 --- a/Lib/_pyrepl/simple_interact.py +++ b/Lib/_pyrepl/simple_interact.py @@ -125,7 +125,7 @@ def run_multiline_interactive_console( command = REPL_COMMANDS[statement] if callable(command): # Make sure that history does not change because of commands - with reader.suspend_history(): + with reader.suspend_history(), reader.suspend_colorization(): command() return True return False diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-03-14-02-11.gh-issue-136924.UMgdPn.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-03-14-02-11.gh-issue-136924.UMgdPn.rst new file mode 100644 index 000000000000..b147b05bf821 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-03-14-02-11.gh-issue-136924.UMgdPn.rst @@ -0,0 +1,2 @@ +The interactive help mode in the :term:`REPL` no longer incorrectly syntax +highlights text input as Python code. Contributed by Olga Matoula.