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/utils/ |
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 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/yamlencoding.py |
""" Functions for adding yaml encoding to the jinja context """ import io import sys import yaml # pylint: disable=blacklisted-import from salt.utils.decorators.jinja import jinja_filter @jinja_filter() def yaml_dquote(text): """ Make text into a double-quoted YAML string with correct escaping for special characters. Includes the opening and closing double quote characters. """ with io.StringIO() as ostream: yemitter = yaml.emitter.Emitter(ostream, width=sys.maxsize) yemitter.write_double_quoted(str(text)) return ostream.getvalue() @jinja_filter() def yaml_squote(text): """ Make text into a single-quoted YAML string with correct escaping for special characters. Includes the opening and closing single quote characters. """ with io.StringIO() as ostream: yemitter = yaml.emitter.Emitter(ostream, width=sys.maxsize) yemitter.write_single_quoted(str(text)) return ostream.getvalue() @jinja_filter() def yaml_encode(data): """ A simple YAML encode that can take a single-element datatype and return a string representation. """ yrepr = yaml.representer.SafeRepresenter() ynode = yrepr.represent_data(data) if not isinstance(ynode, yaml.ScalarNode): raise TypeError( "yaml_encode() only works with YAML scalar data; failed for {}".format( type(data) ) ) tag = ynode.tag.rsplit(":", 1)[-1] ret = ynode.value if tag == "str": ret = yaml_dquote(ynode.value) return ret