deserialize.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:nirum-python 作者: spoqa 项目源码 文件源码
def deserialize_primitive(cls, data):
    if cls is datetime.datetime:
        try:
            d = parse_date(data)
        except iso8601.ParseError:
            raise ValueError("'{}' is not a datetime.".format(data))
    elif cls is datetime.date:
        try:
            d = parse_date(data).date()
        except iso8601.ParseError:
            raise ValueError("'{}' is not a date.".format(data))
    elif cls in {int, float, uuid.UUID, bool}:
        d = cls(data)
    elif cls is numbers.Integral:
        d = data
    elif cls is decimal.Decimal:
        try:
            d = cls(data)
        except decimal.InvalidOperation:
            raise ValueError("'{}' is not a decimal.".format(data))
    elif cls is text_type:
        if not isinstance(data, text_type):
            raise ValueError("'{}' is not a string.".format(data))
        d = cls(data)
    else:
        raise TypeError(
            "'{0}' is not a primitive type.".format(typing._type_repr(cls))
        )
    return d
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号