def _load_(self, value, context):
if isinstance(value, complex):
pass
elif isinstance(value, (integer_types, float)):
value = complex(value)
elif isinstance(value, (tuple, list)):
if len(value) != 2:
raise ValueError()
if not isinstance(value[0], (integer_types, float)) or not isinstance(value[1], (integer_types, float)):
raise ValueError()
value = complex(value[0], value[1])
else:
raise ValueError()
if not self.get_options().allow_nan and (cmath.isnan(value) or cmath.isinf(value)):
raise ValueError()
return value
评论列表
文章目录