5 def __init__(self, ojetwait):
6 self.__ojet = Defer.NONE
7 self.__ojetwait = ojetwait
8 def __getattr__(self, attr):
9 if attr in ('_Defer__ojet', '_Defer__ojetwait', '_get'):
11 return self.__dict__[attr]
13 raise AttributeError, attr
15 if self.__ojet is Defer.NONE:
16 self.__ojet = self.__ojetwait()
17 return getattr(self.__ojet, attr)
18 def __setattr__(self, attr, value):
19 if attr in ('_Defer__ojet', '_Defer__ojetwait'):
20 self.__dict__[attr] = value
22 if self.__ojet is Defer.NONE:
23 self.__ojet = self.__ojetwait()
24 self.__ojetwait = None
25 return setattr(self.__ojet, attr, value)
27 if self.__ojet is Defer.NONE:
28 self.__ojet = self.__ojetwait()
31 def __nonzero__(self):
32 return bool(self._get())