On Sat, 24 Jun 2017 at 09:50 Antoine Pitrou <solip...@pitrou.net> wrote:
> On Sat, 24 Jun 2017 16:28:29 +0000 > Brett Cannon <br...@python.org> wrote: > > > > > > My experience is that: > > > - you want lazy imports to be implicit, i.e. they should work using the > > > "import" statement and not any special syntax or function invocation > > > - you want a blacklist and/or whitelist mechanism to restrict lazy > > > imports to a particular set of modules and packages, because some > > > modules may not play well with lazy importing (e.g. anything that > > > registers plugins, specializations -- think singledispatch --, etc.) > > > > > > For example, I may want to register the "tornado", "asyncio" and > "numpy" > > > namespaces / packages for lazy importing, but not the "numba" namespace > > > as it uses registration mechanisms quite heavily. > > > > > > (and the stdlib could be part of the default lazy import whitelist) > > > > > > > That's all true for an end user's application, but for the stdlib where > > there is no knock-on effects from dependencies not being loaded lazily I > > don't think it's quite as critical. Plus lazy loading does make debugging > > harder by making loads that trigger an exception happen at the line of > > first use instead of at the import line, so I don't know if it's > desirable > > to automatically make the whole stdlib be lazily loaded from the outset > > (which is what would be required since doing it in e.g. sitecustomize.py > > wouldn't happen until after startup anyway). > > Yes, you are right. I was assuming that if we take the time to include > a lazy import system, we'd make it available for third-party > applications, though ;-) > That's step 2. :) While EIBTI for the lazy_import(), "practicality beats purity" in making it easy to just flip a switch to make all imports lazy. Plus I have not thought through the design of the "switch" solution yet while the function solution is already done thanks to importlib.import_module() (which I honestly thought of giving a 'lazy' keyword-only argument to, but since the algorithm would change I figured it was probably best not to go down that route).
_______________________________________________ Speed mailing list Speed@python.org https://mail.python.org/mailman/listinfo/speed