Improved error handling during code generation
[cerebrum.git] / pylibcerebrum / NotifyList.py
blob70403bcb20c9d9e1297f82946ca5c897003d5560
2 def callback_method(func):
3 def notify(self,*args,**kwargs):
4 rv = func(self,*args,**kwargs)
5 for callback in self.callbacks:
6 callback(self)
7 return rv
8 return notify
10 #XXX due to lack of proper slice handling, this will *not* work with python < 3.0
11 class NotifyList(list):
12 extend = callback_method(list.extend)
13 append = callback_method(list.append)
14 remove = callback_method(list.remove)
15 pop = callback_method(list.pop)
16 __delitem__ = callback_method(list.__delitem__)
17 __setitem__ = callback_method(list.__setitem__)
18 __iadd__ = callback_method(list.__iadd__)
19 __imul__ = callback_method(list.__imul__)
21 def __getitem__(self,item):
22 if isinstance(item,slice):
23 return self.__class__(list.__getitem__(self,item))
24 else:
25 return list.__getitem__(self,item)
27 def __init__(self,*args,callbacks=[]):
28 list.__init__(self,*args)
29 self.callbacks = callbacks