msrest-for-python
msrest-for-python copied to clipboard
Serialize np.float64 as float
On my machine np.float64
are the same as float
, so I would expect that they are serialized in the same way. However, this is not the case as the logic in https://github.com/Azure/msrest-for-python/blob/af41991f17445e4cb26d39c247f091ddfd7027b9/msrest/serialization.py#L944 infer the type of the object's attribute using type
rather than isinstance
.
Do you think it makes sense to treat classes that are subclasses of basic types as basic types in the serialization process?
Here is a minimal working example of what I'm referring to. Note that np-float
is cast to a str
instead of a float
.
import msrest.serialization
import numpy as np
class ModelWithNpFloat(msrest.serialization.Model):
_attribute_map = {
"state": {"key": "state", "type": "object"},
}
def __init__(self, state):
self.state = state
model = ModelWithNpFloat(state={'np-float': np.float64(100)})
print(model.serialize()) # {'state': {'np-float': '100.0'}}