PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/renderers/
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
IP: 209.182.202.254
Choose File :

Url:
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/renderers/dson.py

"""
DSON Renderer for Salt

This renderer is intended for demonstration purposes. Information on the DSON
spec can be found `here`__.

.. __: http://vpzomtrrfrt.github.io/DSON/

This renderer requires `Dogeon`__ (installable via pip)

.. __: https://github.com/soasme/dogeon
"""

import logging

try:
    import dson
except ImportError:
    dson = None


log = logging.getLogger(__name__)


def __virtual__():
    if dson is None:
        return (False, "The dogeon Python package is not installed")
    return True


def render(dson_input, saltenv="base", sls="", **kwargs):
    """
    Accepts DSON data as a string or as a file object and runs it through the
    JSON parser.

    :rtype: A Python data structure
    """
    if not isinstance(dson_input, str):
        dson_input = dson_input.read()

    log.debug("DSON input = %s", dson_input)

    if dson_input.startswith("#!"):
        dson_input = dson_input[(dson_input.find("\n") + 1) :]
    if not dson_input.strip():
        return {}
    return dson.loads(dson_input)