Automatic import PEP

Robert Kern robert.kern at gmail.com
Sun Sep 24 19:19:43 EDT 2006


Saizan wrote:
> BTW what would the benefit of the form "lazily import A, B"? If you
> name the modules why not import them directly? Maybe you are not sure
> you would need them, but I don't think that the overhead of importing
> them should matter..

It's primarily useful for large packages. scipy used to have a mechanism of 
postponed imports because loading all of the extension modules in all of scipy's 
subpackages takes a fair bit of time. It especially hurts when you only wanted 
one. However, it is quite convenient to simply write "import scipy; 
scipy.linalg.eig(matrix)".

Nonetheless, we removed that feature and stopped importing all of the 
subpackages because the postponed import mechanism interfered with a number of 
other things (namely, getting docstrings through IPython's ? operator and making 
py2exe apps that use scipy). Having a third-party library do the same thing 
makes interactive use nice without burdening scipy with the problems.

So, "lazily import A" would make sense if A was a large package where all of the 
goodies are buried in A.C.D and A.E, A.X, A.Z, etc. You *do* know that you need 
A, but you may not know what you need underneath it.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the Python-list mailing list