code: def DecodeValueFromAttribute(self, attribute_name, value, ts):
      
      try:
        # Get the Attribute object from our schema.
        attribute = Attribute.PREDICATES[attribute_name]
        cls = attribute.attribute_type
        self._AddAttributeToCache(attribute, LazyDecoder(cls, value, ts),
                                  self.synced_attributes)
      except KeyError:
        pass
      except (ValueError, rdfvalue.DecodeError):
        logging.debug("%s: %s invalid encoding. Skipping.", self.urn,
                      attribute_name)
docs: Given a serialized value, decode the attribute.
  
      Only attributes which have been previously defined are permitted.
  
      Args:
         attribute_name: The string name of the attribute.
         value: The serialized attribute value.
         ts: The timestamp of this attribute.