def test_np_value_fields(): float64 = fields.Float64() res = float64._deserialize("2", None, None) assert res == 2.0 assert isinstance(res, np.float64) int64 = fields.Int64() res = int64._deserialize("2", None, None) assert res == 2 assert isinstance(res, np.int64) bool_ = fields.Bool_() res = bool_._deserialize("true", None, None) assert res is np.bool_(True) assert isinstance(res, np.bool_) assert bool_._serialize(res, None, None) is True
def get_type(data): numeric_types = { "int": contrib_fields.Int64(allow_none=True, error_messages=INVALID_NUMBER), "bool": contrib_fields.Bool_(allow_none=True, error_messages=INVALID_BOOLEAN), "float": contrib_fields.Float64(allow_none=True, error_messages=INVALID_NUMBER), } types = dict(FIELD_MAP, **numeric_types) fieldtype = types[data["type"]] dim = data.get("number_dims", 0) while dim > 0: fieldtype = fields.List(fieldtype, allow_none=True) dim -= 1 return fieldtype
def get_type(data): # TODO: Use invalid error messages on next marshmallow release # (post 0.3.0rc4) # error_messages = {"invalid": "Invalid input: {input}"} numeric_types = { "int": contrib_fields.Int64(allow_none=True), "bool": contrib_fields.Bool_(allow_none=True), "float": contrib_fields.Float64(allow_none=True), } types = dict(FIELD_MAP, **numeric_types) fieldtype = types[data["type"]] dim = data["number_dims"] while dim > 0: fieldtype = fields.List(fieldtype, allow_none=True) dim -= 1 return fieldtype