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

Brett Cannon brett at python.org
Mon Oct 9 12:40:10 EDT 2017


On Mon, Oct 2, 2017, 12:30 Barry Warsaw, <barry at python.org> wrote:

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

My approach supports global "switch" to make it transparent (see the
notebook for details). I'm just saying you could also support a function
for lazy importing when you have only a module or two you to be lazy about
while being eager otherwise.

-Brett



> -Barry
>
> _______________________________________________
> 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/72e378ec/attachment.html>


More information about the Python-Dev mailing list