##// END OF EJS Templates
demandimport: define a `deactivated` context manager...
Jordi Gutiérrez Hermoso -
r25327:2e780411 default
parent child Browse files
Show More
@@ -25,6 +25,8 b' These imports will not be delayed:'
25 '''
25 '''
26
26
27 import __builtin__, os, sys
27 import __builtin__, os, sys
28 from contextlib import contextmanager
29
28 _origimport = __import__
30 _origimport = __import__
29
31
30 nothing = object()
32 nothing = object()
@@ -179,3 +181,16 b' def enable():'
179 def disable():
181 def disable():
180 "disable global demand-loading of modules"
182 "disable global demand-loading of modules"
181 __builtin__.__import__ = _origimport
183 __builtin__.__import__ = _origimport
184
185 @contextmanager
186 def deactivated():
187 "context manager for disabling demandimport in 'with' blocks"
188 demandenabled = isenabled()
189 if demandenabled:
190 disable()
191
192 try:
193 yield
194 finally:
195 if demandenabled:
196 enable()
General Comments 0
You need to be logged in to leave comments. Login now