Deserializes dict, list, str into an object. :param data: dict, list or str. :param klass: class literal, or string of class name. :return: object.
(self, data, klass)
| 430 | return self.__deserialize(data, response_type) |
| 431 | |
| 432 | def __deserialize(self, data, klass): |
| 433 | """Deserializes dict, list, str into an object. |
| 434 | |
| 435 | :param data: dict, list or str. |
| 436 | :param klass: class literal, or string of class name. |
| 437 | |
| 438 | :return: object. |
| 439 | """ |
| 440 | if data is None: |
| 441 | return None |
| 442 | |
| 443 | if isinstance(klass, str): |
| 444 | if klass.startswith('List['): |
| 445 | m = re.match(r'List\[(.*)]', klass) |
| 446 | assert m is not None, "Malformed List type definition" |
| 447 | sub_kls = m.group(1) |
| 448 | return [self.__deserialize(sub_data, sub_kls) |
| 449 | for sub_data in data] |
| 450 | |
| 451 | if klass.startswith('Dict['): |
| 452 | m = re.match(r'Dict\[([^,]*), (.*)]', klass) |
| 453 | assert m is not None, "Malformed Dict type definition" |
| 454 | sub_kls = m.group(2) |
| 455 | return {k: self.__deserialize(v, sub_kls) |
| 456 | for k, v in data.items()} |
| 457 | |
| 458 | # convert str to class |
| 459 | if klass in self.NATIVE_TYPES_MAPPING: |
| 460 | klass = self.NATIVE_TYPES_MAPPING[klass] |
| 461 | else: |
| 462 | klass = getattr(e2a.v1.generated.models, klass) |
| 463 | |
| 464 | if klass in self.PRIMITIVE_TYPES: |
| 465 | return self.__deserialize_primitive(data, klass) |
| 466 | elif klass is object: |
| 467 | return self.__deserialize_object(data) |
| 468 | elif klass is datetime.date: |
| 469 | return self.__deserialize_date(data) |
| 470 | elif klass is datetime.datetime: |
| 471 | return self.__deserialize_datetime(data) |
| 472 | elif klass is decimal.Decimal: |
| 473 | return decimal.Decimal(data) |
| 474 | elif issubclass(klass, Enum): |
| 475 | return self.__deserialize_enum(data, klass) |
| 476 | else: |
| 477 | return self.__deserialize_model(data, klass) |
| 478 | |
| 479 | def parameters_to_tuples(self, params, collection_formats): |
| 480 | """Get parameters as list of tuples, formatting collections. |
no test coverage detected