##// END OF EJS Templates
demandimport: alias __builtin__ as builtins...
Gregory Szorc -
r25673:fa1f0452 default
parent child Browse files
Show More
@@ -24,8 +24,9 b' These imports will not be delayed:'
24 b = __import__(a)
24 b = __import__(a)
25 '''
25 '''
26
26
27 import __builtin__, os, sys
27 import os, sys
28 from contextlib import contextmanager
28 from contextlib import contextmanager
29 import __builtin__ as builtins
29
30
30 _origimport = __import__
31 _origimport = __import__
31
32
@@ -36,7 +37,7 b' try:'
36 level = -1
37 level = -1
37 if sys.version_info[0] >= 3:
38 if sys.version_info[0] >= 3:
38 level = 0
39 level = 0
39 _origimport(__builtin__.__name__, {}, {}, None, level)
40 _origimport(builtins.__name__, {}, {}, None, level)
40 except TypeError: # no level argument
41 except TypeError: # no level argument
41 def _import(name, globals, locals, fromlist, level):
42 def _import(name, globals, locals, fromlist, level):
42 "call _origimport with no level argument"
43 "call _origimport with no level argument"
@@ -171,16 +172,16 b' ignore = ['
171 ]
172 ]
172
173
173 def isenabled():
174 def isenabled():
174 return __builtin__.__import__ == _demandimport
175 return builtins.__import__ == _demandimport
175
176
176 def enable():
177 def enable():
177 "enable global demand-loading of modules"
178 "enable global demand-loading of modules"
178 if os.environ.get('HGDEMANDIMPORT') != 'disable':
179 if os.environ.get('HGDEMANDIMPORT') != 'disable':
179 __builtin__.__import__ = _demandimport
180 builtins.__import__ = _demandimport
180
181
181 def disable():
182 def disable():
182 "disable global demand-loading of modules"
183 "disable global demand-loading of modules"
183 __builtin__.__import__ = _origimport
184 builtins.__import__ = _origimport
184
185
185 @contextmanager
186 @contextmanager
186 def deactivated():
187 def deactivated():
General Comments 0
You need to be logged in to leave comments. Login now