◐ Shell
clean mode source ↗

Message 349557 - Python tracker

Terry, many thanks for the clarifications!

> The intended behavior is to complete if at all possible.

I can see the point in that.

> What is odd to me is that you seem happy using the more numerous non-user IDLE imports when there is no Shell.

The alternative would just be completing in an empty namespace, which would be completely useless.  I do agree that having a shell should increase the available modules etc. available for completion.


FWIW I brought this up trying the dict-key completions in the shell with `globals()[` and got surprising results.

Perhaps we should differentiate between completions in the shell vs. when editing a file.  In the shell, having completions for things not actually available is weird IMO.  In the editor it makes more sense.

Or perhaps we should really go the route of issue #18766 and try to make all available modules available for completions.  I really dislike the arbitrary availability of only certain modules for completion.  That would likely be a *huge* undertaking, though, and I don't think it's worth it.  Maybe restrict this to just stdlib modules, and/or use lazy (on demand) importing.

Finally, we can also decide that the current behavior is what we want. It's there, documented, and normally not very surprising.