[Python-Dev] Investigating time for `import requests`

Brett Cannon brett at python.org
Mon Oct 9 12:48:07 EDT 2017

On Mon, Oct 2, 2017, 17:49 Ronald Oussoren, <ronaldoussoren at mac.com> wrote:

> Op 3 okt. 2017 om 04:29 heeft Barry Warsaw <barry at python.org> het
> volgende geschreven:
> > On Oct 2, 2017, at 14:56, Brett Cannon <brett at python.org> wrote:
> >
> >> So Mercurial specifically is an odd duck because they already do lazy
> importing (in fact they are using the lazy loading support from importlib).
> In terms of all of this discussion of tweaking import to be lazy, I think
> the best approach would be providing an opt-in solution that CLI tools can
> turn on ASAP while the default stays eager. That way everyone gets what
> they want while the stdlib provides a shared solution that's maintained
> alongside import itself to make sure it functions appropriately.
> >
> > The problem I think is that to get full benefit of lazy loading, it has
> to be turned on globally for bare ‘import’ statements.  A typical
> application has tons of dependencies and all those libraries are also doing
> module global imports, so unless lazy loading somehow covers them, it’ll be
> an incomplete gain.  But of course it’ll take forever for all your
> dependencies to use whatever new API we come up with, and if it’s not as
> convenient to write as ‘import foo’ then I suspect it won’t much catch on
> anyway.
> >
> One thing to keep in mind is that imports can have important side-effects.
> Turning every import statement into a lazy import will not be backward
> compatible.

Yep, and that's a lesson Mercurial shared with me at PyCon US this year. My
planned approach has a blacklist for modules to only load eagerly.


> Ronald
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/brett%40python.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20171009/ffe93b1c/attachment.html>

More information about the Python-Dev mailing list