Пример #1
0
def serialize(obj, **options):
    '''
    Serialize Python data to a configparser formatted string or file.

    :param obj: the data structure to serialize
    :param options: options given to lower configparser module.
    '''

    try:
        if not isinstance(obj, dict):
            raise TypeError(
                "configparser can only serialize dictionaries, not {0}".format(
                    type(obj)))
        fp = options.pop('fp', None)
        cp = _create_cp_object(**options)
        _read_dict(cp, obj)

        if fp:
            return cp.write(fp)
        else:
            s = six.moves.StringIO()
            cp.write(s)
            return s.getvalue()
    except Exception as error:
        raise SerializationError(error)
Пример #2
0
def serialize(obj, **options):
    """
    Serialize Python data to a configparser formatted string or file.

    :param obj: the data structure to serialize
    :param options: options given to lower configparser module.
    """

    try:
        if not isinstance(obj, dict):
            raise TypeError(
                "configparser can only serialize dictionaries, not {}".format(
                    type(obj)))
        fp = options.pop("fp", None)
        cp = configparser.ConfigParser(**options)
        _read_dict(cp, obj)

        if fp:
            return cp.write(fp)
        else:
            s = io.StringIO()
            cp.write(s)
            return s.getvalue()
    except Exception as error:  # pylint: disable=broad-except
        raise SerializationError(error)
Пример #3
0
def serialize(value, **options):
    """
    Serialize Python data to plist. To create a binary plist pass
    ``fmt: FMT_BINARY`` as an option.

    :param obj: the data structure to serialize
    :param options: options given to lower plist module.

    :returns: bytes of serialized plist.
    """
    fmt = options.pop("fmt", None)
    # add support for serializing to binary.
    if fmt == "FMT_BINARY":
        log.trace("Adding plistlib.FMT_BINARY to options.")
        options["fmt"] = plistlib.FMT_BINARY

    try:
        if "fp" in options:
            log.trace("Using plistlib.dump to serialize.")
            return plistlib.dump(value, **options)

        log.trace("Using plistlib.dumps to serialize.")
        return plistlib.dumps(value, **options)
    except Exception as error:  # pylint: disable=broad-except
        raise SerializationError(error)
Пример #4
0
 def _serialize(obj, **options):
     try:
         obj = _encoder(obj)
         return salt.utils.msgpack.dumps(obj, _msgpack_module=msgpack,
                                         **options)
     except Exception as error:
         raise SerializationError(error)
Пример #5
0
 def _serialize(obj, **options):
     if options:
         log.warning('options are currently unusued')
     try:
         return msgpack.dumps(obj)
     except Exception as error:
         raise SerializationError(error)
Пример #6
0
def serialize(obj, **options):
    '''
    Serialize Python data to JSON.

    :param obj: the data structure to serialize
    :param options: options given to lower json/simplejson module.
    '''

    try:
        if 'fp' in options:
            return json.dump(obj, **options)
        else:
            return json.dumps(obj, **options)
    except Exception as error:
        raise SerializationError(error)
Пример #7
0
def serialize(obj, **options):
    """
    Serialize Python data to JSON.

    :param obj: the data structure to serialize
    :param options: options given to lower json/simplejson module.
    """

    try:
        if "fp" in options:
            return salt.utils.json.dump(obj, _json_module=_json, **options)
        else:
            return salt.utils.json.dumps(obj, _json_module=_json, **options)
    except Exception as error:  # pylint: disable=broad-except
        raise SerializationError(error)
Пример #8
0
def serialize(obj, **options):
    """
    Serialize Python data to TOML.

    :param obj: the data structure to serialize.
    :param options: options given to the python toml module.
    """

    try:
        if "file_out" in options:
            return toml.dump(obj, options["file_out"], **options)
        else:
            return toml.dumps(obj, **options)
    except Exception as error:  # pylint: disable=broad-except
        raise SerializationError(error)
Пример #9
0
def serialize(obj, **options):
    '''
    Serialize Python data to TOML.

    :param obj: the data structure to serialize.
    :param options: options given to lower pytoml module.
    '''

    try:
        if 'file_out' in options:
            return toml.dump(obj, options['file_out'], **options)
        else:
            return toml.dumps(obj, **options)
    except Exception as error:
        raise SerializationError(error)
Пример #10
0
def serialize(obj, **options):
    '''
    Serialize Python data to YAML.

    :param obj: the data structure to serialize
    :param options: options given to lower yaml module.
    '''

    options.setdefault('Dumper', Dumper)
    try:
        response = yaml.dump(obj, **options)
        if response.endswith('\n...\n'):
            return response[:-5]
        if response.endswith('\n'):
            return response[:-1]
        return response
    except Exception as error:
        raise SerializationError(error)
Пример #11
0
def serialize(obj, **options):
    """
    Serialize Python data to YAML.

    :param obj: the data structure to serialize
    :param options: options given to lower yaml module.
    """

    options.setdefault("Dumper", Dumper)
    options.setdefault("default_flow_style", None)
    try:
        response = yaml.dump(obj, **options)
        if response.endswith("\n...\n"):
            return response[:-5]
        if response.endswith("\n"):
            return response[:-1]
        return response
    except Exception as error:  # pylint: disable=broad-except
        log.exception("Error encountered while serializing")
        raise SerializationError(error)
Пример #12
0
def serialize(obj, **options):
    '''
    Serialize Python data to YAML.

    :param obj: the data structure to serialize
    :param options: options given to lower yaml module.
    '''

    options.setdefault('Dumper', Dumper)
    options.setdefault('default_flow_style', None)
    try:
        response = yaml.dump(obj, **options)
        if response.endswith('\n...\n'):
            return response[:-5]
        if response.endswith('\n'):
            return response[:-1]
        return response
    except Exception as error:
        log.exception('Error encountered while serializing')
        raise SerializationError(error)
Пример #13
0
 def _serialize(obj, **options):
     try:
         obj = _encoder(obj)
         return salt.utils.msgpack.dumps(obj, **options)
     except Exception as error:  # pylint: disable=broad-except
         raise SerializationError(error)
Пример #14
0
 def _serialize(obj, **options):
     try:
         obj = _encoder(obj)
         return msgpack.dumps(obj, **options)
     except Exception as error:
         raise SerializationError(error)
Пример #15
0
 def _serialize(obj, **options):
     try:
         return salt.utils.msgpack.dumps(obj, **options)
     except Exception as error:
         raise SerializationError(error)