# Copyright 2023 MOSEC Authors## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License."""MOSEC NumBin IPC worker mixin.Features: * deserialize IPC data with numbin * serialize IPC data with numbinAttention: numbin only supports NumPy ndarray types."""# pylint: disable=import-outside-toplevelfromtypingimportAnyfrommosec.errorsimportDecodingError,EncodingError
[docs]defserialize_ipc(self,data:Any)->bytes:"""Serialize with NumBin for the IPC."""importnumbintry:data_bytes=numbin.dumps(data)exceptExceptionaserr:raiseEncodingErrorfromerrreturndata_bytes
[docs]defdeserialize_ipc(self,data:bytes)->Any:"""Deserialize with NumBin for the IPC."""importnumbintry:array=numbin.loads(data)exceptExceptionaserr:raiseDecodingErrorfromerrreturnarray