File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313]
1414
1515import contextlib
16- import importlib
16+ from importlib import import_module
17+ from importlib .util import resolve_name
1718import sys
1819import types
1920
@@ -65,7 +66,7 @@ def _target(self):
6566 def _resolve (self ):
6667 real = object .__getattribute__ (self , "_lazy_real" )
6768 if real is None :
68- real = importlib . import_module (self ._target ())
69+ real = import_module (self ._target ())
6970 object .__setattr__ (self , "_lazy_real" , real )
7071 return real
7172
@@ -133,7 +134,11 @@ def lazy_import(name, package=None):
133134 array([1, 2, 3])
134135 """
135136 if package is not None :
136- real_name = importlib .import_module (name , package ).__name__
137+ # real_name = importlib.import_module(name, package).__name__
138+
139+ # Old code imports module eagerly and defeats lazy loading.
140+ # Switch to resolve_name to resolve name without importing.
141+ real_name = resolve_name (name , package )
137142 else :
138143 real_name = name
139144 return LazyModule (real_name )
You can’t perform that action at this time.
0 commit comments