[issue37821] IDLE shell uses wrong namespace for completions

Tal Einat report at bugs.python.org
Tue Aug 13 09:49:00 EDT 2019


Tal Einat <taleinat at gmail.com> added the comment:

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 very 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 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.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37821>
_______________________________________


More information about the Python-bugs-list mailing list