[Python-Dev] requirements for moving import over to importlib? (original) (raw)

Brett Cannon brett at python.org
Wed Feb 8 22:08:29 CET 2012


On Wed, Feb 8, 2012 at 15:31, Terry Reedy <tjreedy at udel.edu> wrote:

On 2/8/2012 3:16 PM, Brett Cannon wrote:

On Wed, Feb 8, 2012 at 14:57, Terry Reedy <tjreedy at udel.edu Would the following work? Treat a function as a 'loop' in that it may be executed repeatedly. Treat 'import x' in a function as what it is, an import call plus a local assignment. Apply a version of the usual optimization: put a sys.modules-based lazy import outside of the function (at the top of the module?) and leave the local assignment "x = sys.modules['x']" in the function. Change sys.modules.delattr to replace a module with a dummy, so the function will still work after a deletion, as it does now.

Probably, but I would hate to force people to code in a specific way for it to work. The intent of what I proposed it to be transparent for imports within functions. It would be a minor optimization if anything, but it would mean that there is a lazy mechanism in place. For top-level imports, unless all are made lazy, then there must be some indication in the code of whether to make it lazy or not.

Not true; importlib would make it dead-simple to whitelist what modules to make lazy (e.g. your app code lazy but all stdlib stuff not, etc.). -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20120208/ff7b231a/attachment.html>



More information about the Python-Dev mailing list