Ejemplo n.º 1
0
def as_result(value):
    if isinstance(value, Exception):
        value = error_dictionary(value)
    if isinstance(value, dict):
        if value.has_key('edt__typ'):
            value = edtlib.edt_decode(value)
        elif (value.get('__base__') == 'Result' or 
              all(value.has_key(key) for key in 
                  ["cached", "changes", "timestamp", "value"])):
            value = Result.from_dict(value)
    if not isinstance(value, Result):
        msglog.log("broadway", msglog.types.WARN, 
                   "Unable to convert %r to Result." % (value,))
    return value
Ejemplo n.º 2
0
 def update(self, result):
     if not isinstance(result, Result):
         if isinstance(result, dict):
             result = Result.from_dict(result)
         else:
             message = "update() expects Result instance, not: %r"
             raise ValueError(message % result)
     self.synclock.acquire()
     try:
         if self.initialized():
             previous = self.get_value()
         else:
             previous = None
         self.result = result
         value = self.get_value()
         self.updated = uptime.secs()
     finally:
         self.synclock.release()
     if self.support_cov:
         self.event_generate(COVEvent(self, previous, value, time.time()))
     if self.debug:
         msglog.debug("%s updated: %r" % (self, result))
Ejemplo n.º 3
0
 def update(self, result):
     if not isinstance(result, Result):
         if isinstance(result, dict):
             result = Result.from_dict(result)
         else:
             message = "update() expects Result instance, not: %r"
             raise ValueError(message % result)
     self.synclock.acquire()
     try:
         if self.initialized():
             previous = self.get_value()
         else:
             previous = None
         self.result = result
         value = self.get_value()
         self.updated = uptime.secs()
     finally:
         self.synclock.release()
     if self.support_cov:
         self.event_generate(COVEvent(self, previous, value, time.time()))
     if self.debug:
         msglog.debug("%s updated: %r" % (self, result))