in alibabacloud_oss_v2/serde.py [0:0]
def _deserialize_xml_any(upper_obj: Model, elem: ET.Element, attr_types: List[str]) -> Any:
# if elem is None or elem.text is None:
# print(f'elem.tag={elem.tag}, elem.text={elem.text}, attr_types={attr_types}\n')
if elem is None:
return None
attr_type = attr_types[0]
if not attr_type.islower():
obj = upper_obj._Model__create_depend_object( # pylint: disable=protected-access
attr_type)
if obj is None:
raise exceptions.DeserializationError(
error=f'Can not create object with {attr_type} type')
_deserialize_xml_model(elem, obj)
return obj
if elem.text is None:
return None
# basic type
if attr_type in ('str', ''):
return str(elem.text)
if attr_type == 'bool':
return deserialize_boolean(elem.text)
if elem.text == '':
return None
if attr_type == 'int':
return int(elem.text)
if attr_type == 'float':
return float(elem.text)
if 'datetime' in attr_type:
return _deserialize_datetime(elem.text, attr_types)
raise exceptions.DeserializationError(error=f'Unsupport type {attr_type}')