Coverage for postrfp/templates/__init__.py: 100%
20 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
1import logging
3from jinja2 import Environment, PackageLoader
6from postrfp import conf
7from postrfp.conf.settings import RunMode
9JINJA_ENV: Environment | None = None
11log = logging.getLogger(__name__)
14def init_jinja(debug=None):
15 if debug is None:
16 debug = conf.CONF.run_mode is RunMode.development
18 cache_size = 0 if debug else 100
19 global JINJA_ENV
21 if JINJA_ENV is not None:
22 log.debug("Skipping jinja initialisation - already done")
23 return
25 JINJA_ENV = Environment(
26 loader=PackageLoader("postrfp", "templates"),
27 autoescape=True,
28 extensions=["jinja2.ext.loopcontrols"],
29 cache_size=cache_size,
30 lstrip_blocks=True,
31 trim_blocks=True,
32 )
33 JINJA_ENV.globals["debug"] = debug
35 JINJA_ENV.tests["list"] = lambda x: isinstance(x, list)
36 log.info("Initialised jinja2 with cache_size of %s", cache_size)
39def get_template(template_name):
40 assert JINJA_ENV is not None, "Jinja environment not initialised"
41 return JINJA_ENV.get_template(template_name)