def _deserialize(data, klass): """Deserializes dict, list, str into an object. Parameters ---------- data : dict, list or str The input data. klass : Class literal, or string of class name. Returns ------- object : object Value or object of the data """ 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 typing_utils.is_generic(klass): if typing_utils.is_list(klass): return _deserialize_list(data, klass.__args__[0]) if typing_utils.is_dict(klass): return _deserialize_dict(data, klass.__args__[1]) else: return deserialize_model(data, klass)
def _deserialize(data, klass): """Deserializes dict, list, str into an object. :param data: dict, list or str. :param klass: class literal, or string of class name. :return: object. """ if data is None: return None if klass in six.integer_types or klass in (float, str, bool, bytearray): 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 typing_utils.is_generic(klass): if typing_utils.is_list(klass): return _deserialize_list(data, klass.__args__[0]) if typing_utils.is_dict(klass): return _deserialize_dict(data, klass.__args__[1]) else: return deserialize_model(data, klass)
def _deserialize( data: Union[dict, list, str], klass: Union[Class, str] ) -> Union[dict, list, Class, int, float, str, bool, datetime.date, datetime.datetime]: """Deserializes dict, list, str into an object. :param data: dict, list or str. :param klass: class literal, or string of class name. :return: object. """ if data is None: return None if klass in (int, 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 typing_utils.is_generic(klass): if typing_utils.is_list(klass): return _deserialize_list(data, klass.__args__[0]) if typing_utils.is_dict(klass): return _deserialize_dict(data, klass.__args__[1]) else: return deserialize_model(data, klass)