-
-
Notifications
You must be signed in to change notification settings - Fork 33.1k
Description
Feature or enhancement
Proposal:
Currently, built-in modules (i.e. sys
) are not autocompleted in the new REPL. For instance, typing import sy<tab>
does not offer sys
as a completion possibility.
This is because we use pkgutil.iter_modules
under the hood. Since built-in modules have no underlying .py
file, they don't show up.
It would be great if the autocomplete could still work with these modules. One possibility would be looking at sys.builtin_module_names
and combining it with the results of pkgutil.iter_modules
.
The relevant code is in this class:
cpython/Lib/_pyrepl/_module_completer.py
Lines 24 to 26 in cc9add6
class ModuleCompleter: | |
"""A completer for Python import statements. | |
Here's how I think we can implement it:
- Find built-in modules by looking at
sys.builtin_module_names
- Merge the results with
ModuleCompleter.global_cache
(might need changing how we represent the modules)
IIUC we only have built-in top-level modules, not submodules, so that should simplify the implementation.
Please don't pick up this issue, I'd like to reserve it for someone at the PyConUS sprints :)
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response