Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 10821cc

Browse filesBrowse files
[3.13] gh-118908: Fix completions after namespace change in REPL (GH-120370) (#120392)
(cherry picked from commit 02e74c3) Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
1 parent 8f5ce42 commit 10821cc
Copy full SHA for 10821cc

File tree

Expand file treeCollapse file tree

2 files changed

+12
-5
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+12
-5
lines changed

‎Lib/_pyrepl/readline.py

Copy file name to clipboardExpand all lines: Lib/_pyrepl/readline.py
+10-3Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
from collections.abc import Callable, Collection
5656
from .types import Callback, Completer, KeySpec, CommandName
5757

58+
TYPE_CHECKING = False
59+
60+
if TYPE_CHECKING:
61+
from typing import Any
62+
5863

5964
MoreLinesCallable = Callable[[str], bool]
6065

@@ -92,7 +97,7 @@
9297

9398
@dataclass
9499
class ReadlineConfig:
95-
readline_completer: Completer | None = RLCompleter().complete
100+
readline_completer: Completer | None = None
96101
completer_delims: frozenset[str] = frozenset(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?")
97102

98103

@@ -554,7 +559,7 @@ def stub(*args: object, **kwds: object) -> None:
554559
# ____________________________________________________________
555560

556561

557-
def _setup() -> None:
562+
def _setup(namespace: dict[str, Any]) -> None:
558563
global raw_input
559564
if raw_input is not None:
560565
return # don't run _setup twice
@@ -570,9 +575,11 @@ def _setup() -> None:
570575
_wrapper.f_in = f_in
571576
_wrapper.f_out = f_out
572577

578+
# set up namespace in rlcompleter
579+
_wrapper.config.readline_completer = RLCompleter(namespace).complete
580+
573581
# this is not really what readline.c does. Better than nothing I guess
574582
import builtins
575-
576583
raw_input = builtins.input
577584
builtins.input = _wrapper.input
578585

‎Lib/_pyrepl/simple_interact.py

Copy file name to clipboardExpand all lines: Lib/_pyrepl/simple_interact.py
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ def run_multiline_interactive_console(
9696
console: code.InteractiveConsole | None = None,
9797
) -> None:
9898
from .readline import _setup
99-
_setup()
100-
10199
namespace = mainmodule.__dict__ if mainmodule else DEFAULT_NAMESPACE
100+
_setup(namespace)
101+
102102
if console is None:
103103
console = InteractiveColoredConsole(
104104
namespace, filename="<stdin>"

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.