GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-159266: Don't reify lazy imports when completing global names in the REPL by brittanyrey · Pull Request #159267 · python/cpython

Conversation

@brittanyrey

@brittanyrey brittanyrey commented Oct 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Tab completing within the REPL was triggering a reify of any lazily imported module whose name matched the completer. Instead, we can look up the value directly in the namespace & finally in the builtins.

With this change you will not get colors for a lazily imported module/object until it is reified.

  • Issue: REPL tab completion of a global name imports lazily imported modules #159266

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@brittanyrey
Don't reify lazy imports when completing global names in the REPL
276f791
fancycompleter's global_matches() eval()ed every matching name to pick
its color, which imported lazily imported modules on <Tab>. Look the
value up in the namespace and builtins instead, as rlcompleter does.
@brittanyrey
brittanyrey requested review from ambv, lysnikolaou and pablogsal as code owners October 12, 2026 21:35
@bedevere-app bedevere-app Bot mentioned this pull request Oct 12, 2026
REPL tab completion of a global name imports lazily imported modules #159266
Open
@bedevere-app bedevere-app Bot added the awaiting review label Oct 12, 2026
@StanFromIreland

StanFromIreland commented Oct 14, 2026

Copy link
Copy Markdown
Member

With this change you will not get colours for a lazily imported module/object until it is reified.

In my opinion, the trade-off doesn't seem worth it, in the repl, I think users care more about the colours than the performance.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@pablogsal pablogsal Awaiting requested review from pablogsal pablogsal is a code owner
@lysnikolaou lysnikolaou Awaiting requested review from lysnikolaou lysnikolaou is a code owner
@ambv ambv Awaiting requested review from ambv ambv is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting review

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@brittanyrey @StanFromIreland
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.