This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author taleinat
Recipients taleinat, terry.reedy
Date 2019-08-13.13:50:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1565704242.72.0.820170589662.issue37821@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2019-08-13 13:50:42taleinatsetrecipients: + taleinat, terry.reedy
2019-08-13 13:50:42taleinatsetmessageid: <1565704242.72.0.820170589662.issue37821@roundup.psfhosted.org>
2019-08-13 13:50:42taleinatlinkissue37821 messages
2019-08-13 13:50:42taleinatcreate