10000 PyREPL: autocomplete built-in modules · Issue #134235 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

PyREPL: autocomplete built-in modules #134235

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue an 8000 d contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
tomasr8 opened this issue May 19, 2025 · 13 comments
Closed

PyREPL: autocomplete built-in modules #134235

tomasr8 opened this issue May 19, 2025 · 13 comments
Labels
easy stdlib Python modules in the Lib dir topic-repl Related to the interactive shell type-feature A feature request or enhancement

Comments

@tomasr8
Copy link
Member
tomasr8 commented May 19, 2025

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:

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

Linked PRs

@tomasr8 tomasr8 added type-feature A feature request or enhancement easy topic-repl Related to the interactive shell labels May 19, 2025
@gpshead
Copy link
Member
gpshead commented May 19, 2025

has anyone claimed this? I'm in the new sprinters room and would be happy to hand it to someone.

8000
@newbery
Copy link
newbery commented May 19, 2025

@gpshead, I wouldn't say I've claimed this yet but I'm looking at it. I'm in the same room. :)

@tomasr8
Copy link
Member Author
tomasr8 commented May 19, 2025

@newbery I'm in 316, let me know if you need help 🙂

@tommix626
Copy link
Contributor

@newbery I'm also looking into this, any updates now? Can I help along? I'm in 315.

@hyoung3
Copy link
Contributor
hyoung3 commented May 19, 2025

I have a fix. Trying to go through post steps of adding test cases, etc.

@tommix626
Copy link
Contributor

Also have a fix! @hyoung3 want to meet and sync up? Hope to learn from you on the contribution process. (Are you at Pycon?)

@hyoung3
Copy link
Contributor
hyoung3 commented May 19, 2025

Hi @tommix626, yes. I'm in the beginners room.

@newbery
Copy link
newbery commented May 19, 2025

@tommix626 , @hyoung3
Cool. I walked away for a bit. Back now. You two need any more assist?

@hyoung3
Copy link
Contributor
hyoung3 commented May 19, 2025

@newbery we are trying to figure out 8000 a test now as one doesn't explicitly test the method we updated. If you have some ideas we'd be interested to hear.

@tommix626
Copy link
Contributor

Update: me and @hyoung3 present @tomasr8 a solution that seems to work and are currently working together on writing tests for it.

@hyoung3
Copy link
Contributor
hyoung3 commented May 19, 2025

@tomasr8 we are having a "pulling our hair out" issue. You have a second to stop by?

@picnixz picnixz added the stdlib Python modules in the Lib dir label May 19, 2025
gpshead pushed a commit that referenced this issue May 19, 2025
* added enhancement auto completing import with sys builtins

---------

Co-authored-by: Hunter <hyoung3@gmail.com>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue May 19, 2025
…4277)

* added enhancement auto completing import with sys builtins

---------
(cherry picked from commit 8421b03)

Co-authored-by: Tom Wang <85062819+tommix626@users.noreply.github.com>
Co-authored-by: Hunter <hyoung3@gmail.com>
@gpshead
Copy link
Member
gpshead commented May 19, 2025

thanks everyone! this is featurey but i feel like this was intended for 3.14 with the autcomplete feature so i went ahead with the backport. if others or the release manager disagree, they can undo it in the 3.14 branch. :)

@gpshead gpshead closed this as completed May 19, 2025
@tomasr8
Copy link
Member Author
tomasr8 commented May 19, 2025

thanks everyone! this is featurey but i feel like this was intended for 3.14 with the autcomplete feature so i went ahead with the backport. if others or the release manager disagree, they can undo it in the 3.14 branch. :)

Thank you! I wasn't sure whether to mark this as a bug or a feature, but it makes sense to backport this :)

gpshead pushed a commit that referenced this issue May 19, 2025
…#134285)

gh-134235: Import Autocomplete for Builtin Modules (GH-134277)

* added enhancement auto completing import with sys builtins

---------
(cherry picked from commit 8421b03)

Co-authored-by: Tom Wang <85062819+tommix626@users.noreply.github.com>
Co-authored-by: Hunter <hyoung3@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
easy stdlib Python modules in the Lib dir topic-repl Related to the interactive shell type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

6 participants
0