1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-05 09:08:50 +00:00

dynamically load jinja2 custom functions

This commit is contained in:
deadc0de6
2020-01-12 10:43:51 +01:00
parent 9e51dfc0e8
commit d5d5e30b92

View File

@@ -6,6 +6,7 @@ jinja2 template generator
"""
import os
import inspect
from jinja2 import Environment, FileSystemLoader
# local imports
@@ -49,13 +50,20 @@ class Templategen:
# adding header method
self.env.globals['header'] = self._header
# adding helper methods
self.env.globals['exists'] = jhelpers.exists
self.env.globals['exists_in_path'] = jhelpers.exists_in_path
self.env.globals['basename'] = jhelpers.basename
self.env.globals['dirname'] = jhelpers.dirname
self._load_funcs_to_dic(jhelpers, self.env.globals)
if self.debug:
self.log.dbg('template additional variables: {}'.format(variables))
def _load_funcs_to_dic(self, mod, dic):
"""dynamically load functions from module to dic"""
for m in inspect.getmembers(mod):
name, func = m
if not inspect.isfunction(func):
continue
if self.debug:
self.log.dbg('load function \"{}\"'.format(name))
dic[name] = func
def generate(self, src):
"""render template from path"""
if not os.path.exists(src):