def render_genshi_tmpl(tmplstr, context, tmplpath=None): ''' Render a Genshi template. A method should be passed in as part of the context. If no method is passed in, xml is assumed. Valid methods are: .. code-block: - xml - xhtml - html - text - newtext - oldtext Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly ''' method = context.get('method', 'xml') if method == 'text' or method == 'newtext': from genshi.template import NewTextTemplate tmpl = NewTextTemplate(tmplstr) elif method == 'oldtext': from genshi.template import OldTextTemplate tmpl = OldTextTemplate(tmplstr) else: from genshi.template import MarkupTemplate tmpl = MarkupTemplate(tmplstr) return tmpl.generate(**context).render(method)
def render_genshi_tmpl(tmplstr, context, tmplpath=None): """ Render a Genshi template. A method should be passed in as part of the context. If no method is passed in, xml is assumed. Valid methods are: .. code-block: - xml - xhtml - html - text - newtext - oldtext Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly """ method = context.get("method", "xml") if method == "text" or method == "newtext": from genshi.template import NewTextTemplate # pylint: disable=no-name-in-module tmpl = NewTextTemplate(tmplstr) elif method == "oldtext": from genshi.template import OldTextTemplate # pylint: disable=no-name-in-module tmpl = OldTextTemplate(tmplstr) else: from genshi.template import MarkupTemplate # pylint: disable=no-name-in-module tmpl = MarkupTemplate(tmplstr) return tmpl.generate(**context).render(method)
def render(genshi_data, saltenv='base', sls='', method='xml', **kws): ''' Render a Genshi template. A method should be passed in as part of the kwargs. If no method is passed in, xml is assumed. Valid methods are: .. code-block: - xml - xhtml - html - text - newtext - oldtext Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly :rtype: A Python data structure ''' if not HAS_LIBS: raise SaltRenderError('Failed to import genshi template') if not isinstance(genshi_data, six.string_types): genshi_data = genshi_data.read() if genshi_data.startswith('#!'): genshi_data = genshi_data[(genshi_data.find('\n') + 1):] if not genshi_data.strip(): return {} if method == 'text' or method == 'newtext': tmpl = NewTextTemplate(genshi_data) elif method == 'oldtext': tmpl = OldTextTemplate(genshi_data) else: tmpl = MarkupTemplate(genshi_data) generated = tmpl.generate(salt=__salt__, grains=__grains__, pillar=__pillar__, opts=__opts__, proxy=__proxy__, saltenv=saltenv, sls=sls, **kws) return generated.render(method)
def render(genshi_data, saltenv="base", sls="", method="xml", **kws): """ Render a Genshi template. A method should be passed in as part of the kwargs. If no method is passed in, xml is assumed. Valid methods are: .. code-block: - xml - xhtml - html - text - newtext - oldtext Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly :rtype: A Python data structure """ if not HAS_LIBS: return {} if not isinstance(genshi_data, str): genshi_data = genshi_data.read() if genshi_data.startswith("#!"): genshi_data = genshi_data[(genshi_data.find("\n") + 1):] if not genshi_data.strip(): return {} if method == "text" or method == "newtext": tmpl = NewTextTemplate(genshi_data) elif method == "oldtext": tmpl = OldTextTemplate(genshi_data) else: tmpl = MarkupTemplate(genshi_data) return tmpl.generate(**kws).render(method)
def render(genshi_data, saltenv='base', sls='', method='xml', **kws): ''' Render a Genshi template. A method should be passed in as part of the kwargs. If no method is passed in, xml is assumed. Valid methods are: .. code-block: - xml - xhtml - html - text - newtext - oldtext Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly :rtype: A Python data structure ''' if not HAS_LIBS: return {} if not isinstance(genshi_data, string_types): genshi_data = genshi_data.read() if genshi_data.startswith('#!'): genshi_data = genshi_data[(genshi_data.find('\n') + 1):] if not genshi_data.strip(): return {} if method == 'text' or method == 'newtext': tmpl = NewTextTemplate(genshi_data) elif method == 'oldtext': tmpl = OldTextTemplate(genshi_data) else: tmpl = MarkupTemplate(genshi_data) return tmpl.generate(**kws).render(method)
Note that the ``text`` method will call ``NewTextTemplate``. If ``oldtext`` is desired, it must be called explicitly :rtype: A Python data structure ''' if not HAS_LIBS: raise SaltRenderError('Failed to import genshi template') if not isinstance(genshi_data, six.string_types): genshi_data = genshi_data.read() if genshi_data.startswith('#!'): genshi_data = genshi_data[(genshi_data.find('\n') + 1):] if not genshi_data.strip(): return {} if method == 'text' or method == 'newtext': tmpl = NewTextTemplate(genshi_data) elif method == 'oldtext': tmpl = OldTextTemplate(genshi_data) else: tmpl = MarkupTemplate(genshi_data) generated = tmpl.generate( salt=__salt__, grains=__grains__, pillar=__pillar__, opts=__opts__, proxy=__proxy__, saltenv=saltenv, sls=sls, **kws) return generated.render(method)