code: def _deserialize(data, klass):
      
      if data is None:
          return None
  
      if klass in six.integer_types or klass in (float, str, bool):
          return _deserialize_primitive(data, klass)
      elif klass == object:
          return _deserialize_object(data)
      elif klass == datetime.date:
          return deserialize_date(data)
      elif klass == datetime.datetime:
          return deserialize_datetime(data)
      elif type(klass) == typing.GenericMeta:
          if klass.__extra__ == list:
              return _deserialize_list(data, klass.__args__[0])
          if klass.__extra__ == dict:
              return _deserialize_dict(data, klass.__args__[1])
      else:
          return deserialize_model(data, klass)
docs: Deserializes dict, list, str into an object.
  
      :param data: dict, list or str.
      :param klass: class literal, or string of class name.
  
      :return: object.