All pastes #575508 Raw Edit

brendan

public text v1 · immutable
·published 2007-06-19 02:18 UTC
rendered paste body
demandimport: raise ImportError immediately for missing modules

diff -r 1063a631cb8e mercurial/demandimport.py
--- a/mercurial/demandimport.py Sat Dec 16 02:51:16 2006 -0200
+++ b/mercurial/demandimport.py Sun Dec 17 17:14:48 2006 -0800
@@ -25,6 +25,8 @@ These imports will not be delayed:
 '''
 
 _origimport = __import__
+import imp
+import os.path
 
 class _demandmod(object):
     """module demand-loader and proxy"""
@@ -35,6 +37,12 @@ class _demandmod(object):
         else:
             head = name
             after = []
+        try:
+            f = globals.get('__file__')
+            path = f and os.path.dirname(f)
+            imp.find_module(head, [path])
+        except ImportError:
+            imp.find_module(head)
         object.__setattr__(self, "_data", (head, globals, locals, after))
         object.__setattr__(self, "_module", None)
     def _extend(self, name):