From: Olga Matoula Date: Sat, 3 Jan 2026 13:35:34 +0000 (+0200) Subject: gh-136924: Suspend REPL colorizing when in a REPL interactive command (GH-136926) X-Git-Tag: v3.15.0a5~11^2~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c39b9d2f2ed8fb719d89f895dba114fb9096826;p=thirdparty%2FPython%2Fcpython.git gh-136924: Suspend REPL colorizing when in a REPL interactive command (GH-136926) 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 3b0debf2ba03..0da9f91baf6c 100644 --- a/Lib/_pyrepl/simple_interact.py +++ b/Lib/_pyrepl/simple_interact.py @@ -124,7 +124,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.