Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Every Reader has its own ModuleCompleter instance
  • Loading branch information
tomasr8 committed Apr 19, 2025
commit f4e290a03f1f8e42f47175e372248c62b14b726d
5 changes: 5 additions & 0 deletions Lib/_pyrepl/_module_completer.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
from typing import Any, Iterable, Iterator, Mapping


def make_default_module_completer() -> ModuleCompleter:
# Inside pyrepl, __package__ is set to '_pyrepl'
return ModuleCompleter(namespace={'__package__': '_pyrepl'})


class ModuleCompleter:
"""A completer for Python import statements.

Expand Down
5 changes: 2 additions & 3 deletions Lib/_pyrepl/readline.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
from . import commands, historical_reader
from .completing_reader import CompletingReader
from .console import Console as ConsoleType
from ._module_completer import ModuleCompleter
from ._module_completer import ModuleCompleter, make_default_module_completer

Console: type[ConsoleType]
_error: tuple[type[Exception], ...] | type[Exception]
Expand Down Expand Up @@ -100,8 +100,7 @@
class ReadlineConfig:
readline_completer: Completer | None = None
completer_delims: frozenset[str] = frozenset(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?")
# Inside pyrepl, __package__ is set to '_pyrepl'
module_completer: ModuleCompleter = ModuleCompleter(namespace={'__package__': '_pyrepl'})
module_completer: ModuleCompleter = field(default_factory=make_default_module_completer)

@dataclass(kw_only=True)
class ReadlineAlikeReader(historical_reader.HistoricalReader, CompletingReader):
Expand Down
Loading