[Pybot-commits] CVS: pybot/pybot module.py,1.1.1.1,1.2
Brought to you by:
niemeyer
From: Gustavo N. <nie...@us...> - 2001-11-14 15:28:46
|
Update of /cvsroot/pybot/pybot/pybot In directory usw-pr-cvs1:/tmp/cvs-serv24657/pybot Modified Files: module.py Log Message: - Added help in messages module. - Added handling of load levels, allowing one to control module loading order at startup. - Reduced load level of help module. Index: module.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/module.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** module.py 2001/11/02 17:20:19 1.1.1.1 --- module.py 2001/11/14 15:28:41 1.2 *************** *** 27,30 **** --- 27,66 ---- return self.__modules.has_key(name) + def loadlist(self, names): + """Load list of given modules considering level attribute.""" + modulelist = [] + for name in names: + try: + module = __import__("pybot.modules."+name) + module = getattr(module, "modules") + module = getattr(module, name) + reload(module) + func = getattr(module, "__loadmodule__") + try: + level = getattr(module, "__loadlevel__") + except AttributeError: + level = 100 + l = len(modulelist) + i = 0 + while i < l: + if modulelist[i][-1] > level: + modulelist.insert(i, (name, module, func, level)) + break + i = i + 1 + else: + modulelist.append((name, module, func, level)) + except (AttributeError, ImportError): + traceback.print_exc() + ret = [] + for name, module, func, level in modulelist: + try: + func(self) + except: + traceback.print_exc() + else: + self.__modules[name] = module + ret.append(name) + return ret + def load(self, name): try: |