Source code for slippinj.generator.templates_lib

from injector import inject, AssistedBuilder
from jinja2 import Environment, FileSystemLoader


[docs]class TemplatesLib(object): """Manage all the templates library interaction""" @inject(loader=AssistedBuilder(FileSystemLoader), environment=AssistedBuilder(Environment)) def __init__(self, loader, environment): """ Initialize the class :param loader: FilesystemLoader :param environment: Environment """ super(TemplatesLib, self).__init__() self.__loader = loader self.__environment = environment def __get_lib(self, base_directory): return self.__environment.build( loader=self.__loader.build(searchpath=base_directory), trim_blocks=True, extensions=['jinja2.ext.do'] )
[docs] def render(self, base_directory, template_file, template_vars): """ Render the given template with the template_vars :param base_directory: string Path where the template can be found :param template_file: string :param template_vars: dict :return: string """ return self.__get_lib(base_directory).get_template(template_file).render(template_vars)