def load_module(self, name, stuff): module = ModuleLoader.load_module(self, name, stuff) file, filename, info = stuff if filename and not isdir(filename): last = getmtime(filename) self.mod_info[name] = (stuff, last) return module
def find_module_in_dir(self, name, dir, allow_packages=1): ModuleLoader = self.__class__.__bases__[0] stuff = ModuleLoader.find_module_in_dir(self, name, dir, allow_packages) if stuff: #print 'standard module loader worked' return stuff else: if dir: prepFileName = dir + os.sep + name + '.prep' else: prepFileName = name + '.prep' if os.path.isfile(prepFileName): #compile WITHOUT IMPORTING to avoid triggering recursion mod = compileModule(prepFileName, verbose=0, importModule=0) #now use the default... return ModuleLoader.find_module_in_dir(self, name, dir, allow_packages) else: return None
def _reload(self, name, stuff): try: file, filename, info = stuff stuff = (open(filename), filename, info) module = ModuleLoader.load_module(self, name, stuff) modules[name] = module self.notify(module) except ImportError, msg: stderr.write("could not reloaded module '%s'. See the following exception:\n\n" % name) #print_exc() print msg stderr.flush()
def load_module(self, name, stuff): file, filename, info = stuff suff, mode, type = info if type == 'PACKAGE': return self.load_package(name, stuff) if sys.modules.has_key(name): m = sys.modules[name] else: sys.modules[name] = m = imp.new_module(name) self.set_parent(m) if type == imp.C_EXTENSION and '.' in name: return self.load_dynamic(name, stuff) else: return ModuleLoader.load_module(self, name, stuff)
def find_module_in_dir(self, name, dir, allow_packages=1): ModuleLoader = self.__class__.__bases__[0] stuff = ModuleLoader.find_module_in_dir(self, name, dir, allow_packages) if stuff: #print 'standard module loader worked' return stuff else: if dir: prepFileName = dir + os.sep + name + '.prep' else: prepFileName = name + '.prep' if os.path.isfile(prepFileName): #compile WITHOUT IMPORTING to avoid triggering recursion mod = compileModule(prepFileName, verbose=0, importModule=0) #now use the default... return ModuleLoader.find_module_in_dir( self, name, dir, allow_packages) else: return None
def find_module(self, name, path = None): stuff = ModuleLoader.find_module(self, name, path) if stuff: return stuff if path: return if self.verbose: print "looking for: ", name, path for base in url_path: url = urljoin(base, name + ".py") try: file = urlopen(url) name = tempfile.mktemp() stream = open(name, 'wb') stream.write(file.read()) stream.close file = open(name, 'r') return file, url, ('.py', 'r', 1) except HTTPError, he: print "Did not find: ", url print he
def find_module_in_dir(self, name, dir): if dir is not None: dirname = self.hooks.path_join(dir, name) if self.hooks.path_isdir(dirname): return None, dirname, ('', '', 'PACKAGE') return ModuleLoader.find_module_in_dir(self, name, dir)
"""New import scheme with package support.
def __init__(self): ModuleLoader.__init__(self) self.importing_modules = {} self.mod_info = {} self._start()