]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111201: Remove readline dependency from the PyREPL (#119262)
authorLysandros Nikolaou <lisandrosnik@gmail.com>
Tue, 21 May 2024 20:30:45 +0000 (16:30 -0400)
committerGitHub <noreply@github.com>
Tue, 21 May 2024 20:30:45 +0000 (22:30 +0200)
Lib/_pyrepl/readline.py
Lib/test/test_pyrepl/__init__.py
Misc/NEWS.d/next/Library/2024-05-20-20-30-57.gh-issue-111201.DAA5lC.rst [new file with mode: 0644]

index 0adecf235a4eb4ef9bab405c4856d08d5779f6cc..9c85ce175fd6d6db56f9b0c1b2f99e02f649872e 100644 (file)
@@ -31,9 +31,9 @@ from __future__ import annotations
 from dataclasses import dataclass, field
 
 import os
-import readline
 from site import gethistoryfile   # type: ignore[attr-defined]
 import sys
+from rlcompleter import Completer as RLCompleter
 
 from . import commands, historical_reader
 from .completing_reader import CompletingReader
@@ -84,7 +84,7 @@ __all__ = [
 
 @dataclass
 class ReadlineConfig:
-    readline_completer: Completer | None = readline.get_completer()
+    readline_completer: Completer | None = RLCompleter().complete
     completer_delims: frozenset[str] = frozenset(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?")
 
 
index a9bc41f4d39f60b66f83f32d078d42ff415b449a..fa38b86b847dd98547a4226c7cf2078ba06c3262 100644 (file)
@@ -7,7 +7,6 @@ from test.support.import_helper import import_module
 # option.  Additionally, we need to attempt to import curses and readline.
 requires("curses")
 curses = import_module("curses")
-readline = import_module("readline")
 
 
 def load_tests(*args):
diff --git a/Misc/NEWS.d/next/Library/2024-05-20-20-30-57.gh-issue-111201.DAA5lC.rst b/Misc/NEWS.d/next/Library/2024-05-20-20-30-57.gh-issue-111201.DAA5lC.rst
new file mode 100644 (file)
index 0000000..15cd79d
--- /dev/null
@@ -0,0 +1 @@
+Remove dependency to :mod:`readline` from the new Python REPL.