Mini Shell
"""
salt.serializers.msgpack
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implements MsgPack serializer.
"""
import logging
import salt.utils.msgpack
from salt.serializers import DeserializationError, SerializationError
log = logging.getLogger(__name__)
__all__ = ["deserialize", "serialize", "available"]
available = salt.utils.msgpack.HAS_MSGPACK
def serialize(obj, **options):
"""
Serialize Python data to MsgPack.
:param obj: the data structure to serialize
:param options: options given to lower msgpack module.
"""
try:
return salt.utils.msgpack.dumps(obj, **options)
except Exception as error: # pylint: disable=broad-except
raise SerializationError(error)
def deserialize(stream_or_string, **options):
"""
Deserialize any string of stream like object into a Python data structure.
:param stream_or_string: stream or string to deserialize.
:param options: options given to lower msgpack module.
"""
try:
options.setdefault("use_list", True)
options.setdefault("raw", False)
return salt.utils.msgpack.loads(stream_or_string, **options)
except Exception as error: # pylint: disable=broad-except
raise DeserializationError(error)
Zerion Mini Shell 1.0