import localimport class ImportContext(localimport.PseudoRootContext): def __init__(self, contextname='local'): self.path = [] self.modules = {} self.contextname = contextname def getstoredict(self): return self.modules def getfullname(self, name): return '<%s>.%s' % (self.contextname, name) def getpathlist(self): return map(str, self.path) # XXX for now: py.path -> str def import_(self, fullname): localimport.install_hook() modules = localimport.import_in_context(self, fullname) if modules is None: raise ImportError(fullname) return modules[-1]