From 971f387bbb598a481aa8974ddc7a358459030415 Mon Sep 17 00:00:00 2001 From: Kuang Yu Heng Date: Mon, 12 Jan 2026 07:30:35 -0800 Subject: [PATCH] gh-137113 docs: note readline no longer supported in REPL after 3.13 (GH-137142) Add a note to the readline module documentation stating that Python 3.13 and later no longer supports readline in the default REPL, as per gh-118840. Includes workaround using PYTHON_BASIC_REPL. Update tutorial to remove the reference, and use a different key to test things out. Signed-off-by: Kuang Yu Heng --- Doc/library/readline.rst | 6 ++++++ Doc/tutorial/interpreter.rst | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Doc/library/readline.rst b/Doc/library/readline.rst index 0449682585c8..199e17595f41 100644 --- a/Doc/library/readline.rst +++ b/Doc/library/readline.rst @@ -403,3 +403,9 @@ support history save/restore. :: def save_history(self, histfile): readline.set_history_length(1000) readline.write_history_file(histfile) + +.. note:: + + The new :term:`REPL` introduced in version 3.13 doesn't support readline. + However, readline can still be used by setting the :envvar:`PYTHON_BASIC_REPL` + environment variable. diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst index cd5260714248..72cac1c1e909 100644 --- a/Doc/tutorial/interpreter.rst +++ b/Doc/tutorial/interpreter.rst @@ -34,13 +34,13 @@ status. If that doesn't work, you can exit the interpreter by typing the following command: ``quit()``. The interpreter's line-editing features include interactive editing, history -substitution and code completion on systems that support the `GNU Readline -`_ library. +substitution and code completion on most systems. Perhaps the quickest check to see whether command line editing is supported is -typing :kbd:`Control-P` to the first Python prompt you get. If it beeps, you -have command line editing; see Appendix :ref:`tut-interacting` for an -introduction to the keys. If nothing appears to happen, or if ``^P`` is -echoed, command line editing isn't available; you'll only be able to use +typing a word in on the Python prompt, then pressing Left arrow (or :kbd:`Control-b`). +If the cursor moves, you have command line editing; see Appendix +:ref:`tut-interacting` for an introduction to the keys. +If nothing appears to happen, or if a sequence like ``^[[D`` or ``^B`` appears, +command line editing isn't available; you'll only be able to use backspace to remove characters from the current line. The interpreter operates somewhat like the Unix shell: when called with standard -- 2.47.3