from scipy.io import loadmat
from cis_interface import backwards
from cis_interface.serialize.DefaultDeserialize import DefaultDeserialize
[docs]class MatDeserialize(DefaultDeserialize):
r"""Class for deserializing a python object from a bytes message using
Matlab .mat style."""
def __init__(self, *args, **kwargs):
super(MatDeserialize, self).__init__(*args, **kwargs)
[docs] def __call__(self, msg):
r"""Deserialize a message.
Args:
msg (str, bytes): Message to be deserialized.
Returns:
obj: Deserialized Python object.
"""
if len(msg) == 0:
return dict()
fd = backwards.BytesIO(msg)
out = loadmat(fd, squeeze_me=False)
mat_keys = ['__header__', '__globals__', '__version__']
for k in mat_keys:
del out[k]
fd.close()
return out