Add new module type for serializers from issue #22257.

Move existing serializers from salt.utils.serializers to
salt.serializers.
This commit is contained in:
Aneesh Agrawal 2015-05-28 19:48:00 -04:00
parent 4e61c4312a
commit 4b9311507c
22 changed files with 89 additions and 45 deletions

View file

@ -42954,7 +42954,7 @@ or if the specified timeout is not an int or a float
Thrown when token authentication fails
.UNINDENT
.SS salt.serializers
.SS salt.utils.serializers
.SS salt.serializers
.sp
This module implements all the serializers needed by salt.
Each serializer offers the same functions and attributes:
@ -42970,14 +42970,14 @@ function for serializing a Python object
flag that tells if the serializer is available
(all dependencies are met etc.)
.UNINDENT
.SS salt.utils.serializers.json
.SS salt.serializers.json
.sp
Implements JSON serializer.
.sp
It\(aqs just a wrapper around json (or simplejson if available).
.INDENT 0.0
.TP
.B salt.utils.serializers.json.deserialize(stream_or_string, **options)
.B salt.serializers.json.deserialize(stream_or_string, **options)
Deserialize any string of stream like object into a Python data structure.
.INDENT 7.0
.TP
@ -42992,7 +42992,7 @@ Deserialize any string of stream like object into a Python data structure.
.UNINDENT
.INDENT 0.0
.TP
.B salt.utils.serializers.json.serialize(obj, **options)
.B salt.serializers.json.serialize(obj, **options)
Serialize Python data to JSON.
.INDENT 7.0
.TP
@ -43005,7 +43005,7 @@ Serialize Python data to JSON.
.UNINDENT
.UNINDENT
.UNINDENT
.SS salt.utils.serializers.yaml
.SS salt.serializers.yaml
.sp
Implements YAML serializer.
.sp
@ -43013,7 +43013,7 @@ Underneath, it is based on pyyaml and use the safe dumper and loader.
It also use C bindings if they are available.
.INDENT 0.0
.TP
.B salt.utils.serializers.yaml.deserialize(stream_or_string, **options)
.B salt.serializers.yaml.deserialize(stream_or_string, **options)
Deserialize any string of stream like object into a Python data structure.
.INDENT 7.0
.TP
@ -43028,7 +43028,7 @@ Deserialize any string of stream like object into a Python data structure.
.UNINDENT
.INDENT 0.0
.TP
.B salt.utils.serializers.yaml.serialize(obj, **options)
.B salt.serializers.yaml.serialize(obj, **options)
Serialize Python data to YAML.
.INDENT 7.0
.TP
@ -43041,12 +43041,12 @@ Serialize Python data to YAML.
.UNINDENT
.UNINDENT
.UNINDENT
.SS salt.utils.serializers.msgpack
.SS salt.serializers.msgpack
.sp
Implements MsgPack serializer.
.INDENT 0.0
.TP
.B salt.utils.serializers.msgpack.deserialize(stream_or_string, **options)
.B salt.serializers.msgpack.deserialize(stream_or_string, **options)
Deserialize any string of stream like object into a Python data structure.
.INDENT 7.0
.TP
@ -43061,7 +43061,7 @@ Deserialize any string of stream like object into a Python data structure.
.UNINDENT
.INDENT 0.0
.TP
.B salt.utils.serializers.msgpack.serialize(obj, **options)
.B salt.serializers.msgpack.serialize(obj, **options)
Serialize Python data to MsgPack.
.INDENT 7.0
.TP

View file

@ -1,14 +0,0 @@
================
salt.serializers
================
.. automodule:: salt.utils.serializers
.. automodule:: salt.utils.serializers.json
:members:
.. automodule:: salt.utils.serializers.yaml
:members:
.. automodule:: salt.utils.serializers.msgpack
:members:

View file

@ -0,0 +1,16 @@
.. _all-salt.serializers:
================================
Full list of builtin serializers
================================
.. currentmodule:: salt.output
.. autosummary::
:toctree:
:template: autosummary.rst.tmpl
json
msgpack
yaml
yamlex

View file

@ -0,0 +1,6 @@
=====================
salt.serializers.json
=====================
.. automodule:: salt.serializers.json
:members:

View file

@ -0,0 +1,6 @@
========================
salt.serializers.msgpack
========================
.. automodule:: salt.serializers.msgpack
:members:

View file

@ -0,0 +1,6 @@
=====================
salt.serializers.yaml
=====================
.. automodule:: salt.serializers.yaml
:members:

View file

@ -0,0 +1,6 @@
=======================
salt.serializers.yamlex
=======================
.. automodule:: salt.serializers.yamlex
:members:

View file

@ -340,6 +340,17 @@ def outputters(opts):
return wrapped_ret
def serializers(opts):
'''
Returns the serializers modules
:param dict opts: The Salt options dictionary
:returns: LazyLoader instance, with only serializers present in the keyspace
'''
return LazyLoader(_module_dirs(opts, 'serializers', 'serializers'),
opts,
tag='serializers')
def auth(opts, whitelist=None):
'''
Returns the auth modules

View file

@ -40,7 +40,7 @@ from __future__ import absolute_import
# Import Python libs
import logging
from salt.utils.serializers import json
from salt.serializers import json
from distutils.version import LooseVersion as _LooseVersion # pylint: disable=import-error,no-name-in-module
# Import Salt libs

View file

@ -13,7 +13,7 @@ from __future__ import absolute_import
import logging
# Import salt libs
from salt.utils.serializers.yamlex import deserialize
from salt.serializers.yamlex import deserialize
# Set up logging
log = logging.getLogger(__name__)

View file

@ -7,7 +7,7 @@ import warnings
# Import salt libs
import salt.utils.url
from salt.utils.serializers.yamlex import deserialize
from salt.serializers.yamlex import deserialize
log = logging.getLogger(__name__)

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
'''
salt.utils.serializers
salt.serializers
~~~~~~~~~~~~~~~~~~~~~~
This module implements all the serializers needed by salt.

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
'''
salt.utils.serializers.json
salt.serializers.json
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implements JSON serializer.
@ -16,7 +16,7 @@ except ImportError:
import json
from salt.ext.six import string_types
from salt.utils.serializers import DeserializationError, SerializationError
from salt.serializers import DeserializationError, SerializationError
__all__ = ['deserialize', 'serialize', 'available']

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
'''
salt.utils.serializers.msgpack
salt.serializers.msgpack
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implements MsgPack serializer.
@ -13,7 +13,7 @@ from copy import copy
# Import Salt Libs
from salt.log import setup_console_logger
from salt.utils.serializers import DeserializationError, SerializationError
from salt.serializers import DeserializationError, SerializationError
# Import 3rd-party libs
import salt.ext.six as six

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
'''
salt.utils.serializers.yaml
salt.serializers.yaml
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implements YAML serializer.
@ -16,7 +16,7 @@ import yaml
from yaml.constructor import ConstructorError
from yaml.scanner import ScannerError
from salt.utils.serializers import DeserializationError, SerializationError
from salt.serializers import DeserializationError, SerializationError
import salt.ext.six as six
from salt.utils.odict import OrderedDict

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
'''
salt.utils.serializers.yamlex
salt.serializers.yamlex
~~~~~~~~~~~~~~~~~~~~~~~~~~
YAMLEX is a format that allows for things like sls files to be
@ -23,7 +23,7 @@
.. code-block:: python
from salt.utils.serializers import yamlex
from salt.serializers import yamlex
with open('state.sls', 'r') as stream:
obj = yamlex.deserialize(stream)
@ -56,7 +56,7 @@
.. code-block:: python
from salt.utils.serializers import yaml
from salt.serializers import yaml
yml_obj = yaml.deserialize(str(obj))
assert yml_obj == obj
@ -110,7 +110,7 @@ from copy import copy
# Import Salt Libs
from salt.utils.serializers import DeserializationError, SerializationError
from salt.serializers import DeserializationError, SerializationError
from salt.utils.aggregation import aggregate, Map, Sequence
from salt.utils.odict import OrderedDict

View file

@ -251,8 +251,8 @@ import salt.utils
import salt.utils.templates
import salt.utils.url
from salt.exceptions import CommandExecutionError
from salt.utils.serializers import yaml as yaml_serializer
from salt.utils.serializers import json as json_serializer
from salt.serializers import yaml as yaml_serializer
from salt.serializers import json as json_serializer
# Import 3rd-party libs
import salt.ext.six as six
@ -4210,7 +4210,7 @@ def serialize(name,
# round-trip this through JSON to avoid OrderedDict types
# there's probably a more performant way to do this...
# TODO remove json round-trip when all dataset will use
# utils.serializers
# serializers
contents = pprint.pformat(
json.loads(
json.dumps(dataset),

View file

@ -13,7 +13,7 @@ import copy
import logging
import salt.ext.six as six
from salt.utils.odict import OrderedDict
from salt.utils.serializers.yamlex \
from salt.serializers.yamlex \
import merge_recursive as _yamlex_merge_recursive
log = logging.getLogger(__name__)

View file

@ -115,6 +115,12 @@ class LoaderGlobalsTest(integration.ModuleCase):
'''
self._verify_globals(salt.loader.outputters(self.master_opts))
def test_serializers(self):
'''
Test that serializers have: []
'''
self._verify_globals(salt.loader.serializers(self.master_opts))
def test_states(self):
'''
Test that states:

View file

@ -13,7 +13,7 @@ ensure_in_syspath('../..')
import salt.state
from salt.config import minion_config
from salt.template import compile_template_str
from salt.utils.serializers import yamlex
from salt.serializers import yamlex
basic_template = '''#!yamlex
foo: bar

View file

@ -0,0 +1 @@
# -*- coding: utf-8 -*-

View file

@ -16,8 +16,8 @@ from textwrap import dedent
import jinja2
# Import salt libs
from salt.utils.serializers import json, yamlex, yaml, msgpack
from salt.utils.serializers import SerializationError
from salt.serializers import json, yamlex, yaml, msgpack
from salt.serializers import SerializationError
from salt.utils.odict import OrderedDict
SKIP_MESSAGE = '%s is unavailable, do prerequisites have been met?'