def _serialize_xml_any()

in alibabacloud_oss_v2/serde.py [0:0]


def _serialize_xml_any(tag: str, value: Any, atype: str) -> ET.Element:
    if isinstance(value, Model):
        return _serialize_xml_model(value)

    if isinstance(value, datetime.datetime):
        atypes = atype.split(',')
        child = ET.Element(tag)
        if 'httptime' in atypes:
            child.text = serialize_httptime(value)
        elif 'unixtime' in atypes:
            child.text = serialize_unixtime(value)
        elif 'ios8601date' in atypes:
            child.text = serialize_iso_date(value)
        else:
            child.text = serialize_isotime(value)
        return child

    if isinstance(value, Enum):
        child = ET.Element(tag)
        child.text = str(value.value)
        return child

    if isinstance(value, bool):
        child = ET.Element(tag)
        child.text = str(value).lower()
        return child

    # default is basic type
    if isinstance(value, (str, int, float)):
        child = ET.Element(tag)
        child.text = str(value)
        return child

    raise exceptions.SerializationError(
        error=f'Unsupport type {type(value)}')