code: def unmarshal(self, value, bind_client=None):
          
          #self.log.debug("Unmarshall {0!r}: {1!r}".format(self, value))
          if not isinstance(value, self.type):
              o = self.type()
              if bind_client is not None and hasattr(o.__class__, 'bind_client'):
                  o.bind_client = bind_client
  
              if isinstance(value, dict):
                  for (k, v) in value.items():
                      if not hasattr(o.__class__, k):
                          self.log.warning("Unable to set attribute {0} on entity {1!r}".format(k, o))
                      else:
                          #self.log.debug("Setting attribute {0} on entity {1!r}".format(k, o))
                          setattr(o, k, v)
                  value = o
              else:
                  raise Exception("Unable to unmarshall object {0!r}".format(value))
          return value
docs: Cast the specified value to the entity type.