def render_jinja(data, directory, content_filter): loader = FilteredLoader(FileSystemLoader(directory), content_filter) env = Environment(loader=loader) try: template = env.from_string(data) rendered = template.render() except TemplateError as ex: raise UnableToParse(original=ex) return rendered
def yamlize(data, directory, content_filter): data = content_filter(data) try: return yaml.load(data) except yaml.error.YAMLError as e: if ('{{' not in data) and ('{%' not in data): raise UnableToParse(original=e) try: from constructor.jinja import render_jinja except ImportError as ex: raise UnableToParseMissingJinja2(original=ex) data = render_jinja(data, directory, content_filter) return yaml.load(data)