%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/renderers/ |
Current File : //usr/lib/python2.7/site-packages/salt/renderers/json5.py |
# -*- coding: utf-8 -*- ''' JSON5 Renderer for Salt .. versionadded:: 2016.3.0 JSON5 is an unofficial extension to JSON. See http://json5.org/ for more information. This renderer requires the `json5 python bindings`__, installable via pip. .. __: https://pypi.python.org/pypi/json5 ''' from __future__ import absolute_import, print_function, unicode_literals # Import python libs import logging try: import json5 as json HAS_JSON5 = True except ImportError: HAS_JSON5 = False # Import salt libs from salt.ext import six log = logging.getLogger(__name__) # Define the module's virtual name __virtualname__ = 'json5' def __virtual__(): if not HAS_JSON5: return (False, 'json5 module not installed') return __virtualname__ def render(json_data, saltenv='base', sls='', **kws): ''' Accepts JSON as a string or as a file object and runs it through the JSON parser. :rtype: A Python data structure ''' if not isinstance(json_data, six.string_types): json_data = json_data.read() if json_data.startswith('#!'): json_data = json_data[(json_data.find('\n') + 1):] if not json_data.strip(): return {} return json.loads(json_data)