]> jfr.im git - erebus.git/blob - modlib.py
Added a few module featuresm depends needs testing!
[erebus.git] / modlib.py
1 class error(object):
2 def __init__(self, desc):
3 self.errormsg = desc
4 def __nonzero__(self):
5 return False #object will test to False
6 def __repr__(self):
7 return '<modlib.error %r>' % self.errormsg
8 def __str__(self):
9 return self.errormsg
10
11 class modlib(object):
12 def __init__(self, name):
13 self.hooks = {}
14 self.parent = None
15
16 self.name = name
17
18 def modstart(self, parent):
19 self.parent = parent
20 for cmd, func in self.hooks.iteritems():
21 self.parent.hook(cmd, func)
22 def modstop(self, parent):
23 for cmd, func in self.hooks.iteritems():
24 self.parent.unhook(cmd, func)
25
26 def hook(self, cmd):
27 def realhook(func):
28 self.hooks[cmd] = func
29 if self.parent is not None:
30 self.parent.hook(cmd, func)
31 return func
32 return realhook