#!/usr/bin/env python # encoding: utf-8 import jinja2, os from .filters import includegraphics import logging logger = logging.getLogger(__name__) __all__ = ["texenv"] # Definition of jinja syntax for latex texenv = jinja2.Environment( block_start_string = '\Block{', # Gros WTF!! Si on le met en maj ça ne marche pas alors que c'est en maj dans le template... block_end_string = '}', variable_start_string = '\Var{', variable_end_string = '}', comment_start_string = '\#{', comment_end_string = '}', line_statement_prefix = '%-', line_comment_prefix = '%#', loader = jinja2.ChoiceLoader([jinja2.PackageLoader("notes_tools.reports", "templates"), jinja2.FileSystemLoader(['./']), ]), extensions = ['jinja2.ext.do'] ) # Filters from .filters import includegraphics texenv.filters['includegraphics'] = includegraphics def feed_template(target, datas, template): """ Get the template and feed it to create reports :param target: path where the report will be saved :param datas: dictonnary to feed the template :param template: the template """ logger.info("Getting template {}".format(template)) report = texenv.get_template(template) path_to_target = target.dirname() if not path_to_target.exists(): path_to_target.mkdir() with open(target, "w") as f: f.write(report.render(**datas, directory=path_to_target)) logger.info("{} est construit! Ya plus qu'à compiler!".format(target)) if __name__ == '__main__': print(texenv.list_templates()) texenv.get_template("tpl_reports.tex") # ----------------------------- # Reglages pour 'vim' # vim:set autoindent expandtab tabstop=4 shiftwidth=4: # cursor: 16 del