Bases: KiaraRenderer[SOURCE_TYPE, INPUTS_SCHEMA, str, JinjaRndererConfig]
, Generic[SOURCE_TYPE, INPUTS_SCHEMA]
Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/renderers/jinja.py
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 | class BaseJinjaRenderer(
KiaraRenderer[SOURCE_TYPE, INPUTS_SCHEMA, str, JinjaRndererConfig],
Generic[SOURCE_TYPE, INPUTS_SCHEMA],
):
_renderer_config_cls = JinjaRndererConfig
def __init__(
self,
kiara: "Kiara",
renderer_config: Union[None, Mapping[str, Any], KiaraRendererConfig] = None,
):
self._jinja_env: Union[Environment, None] = None
super().__init__(kiara=kiara, renderer_config=renderer_config)
def get_jinja_env(self) -> Environment:
if self._jinja_env is None:
je = self.retrieve_jinja_env()
je._render_registry = self._kiara.render_registry
self._jinja_env = je.instance
return self._jinja_env
def retrieve_jinja_env(self) -> JinjaEnv:
return JinjaEnv()
@abc.abstractmethod
def get_template(self, render_config: INPUTS_SCHEMA) -> Template:
pass
@abc.abstractmethod
def assemble_render_inputs(
self, instance: Any, render_config: INPUTS_SCHEMA
) -> Mapping[str, Any]:
pass
def _render(self, instance: SOURCE_TYPE, render_config: INPUTS_SCHEMA) -> str:
template = self.get_template(render_config=render_config)
if template is None:
msg = "Available templates:\n"
for template_name in self.get_jinja_env().list_templates():
msg += f" - {template_name}\n"
raise KiaraException(msg=f"Could not find requested template for renderer '{self.__class__._renderer_name}'", details=msg) # type: ignore
inputs = self.assemble_render_inputs(instance, render_config=render_config)
rendered = template.render(**inputs)
return rendered
|
Functions
get_jinja_env() -> Environment
Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/renderers/jinja.py
| def get_jinja_env(self) -> Environment:
if self._jinja_env is None:
je = self.retrieve_jinja_env()
je._render_registry = self._kiara.render_registry
self._jinja_env = je.instance
return self._jinja_env
|
retrieve_jinja_env() -> JinjaEnv
Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/renderers/jinja.py
| def retrieve_jinja_env(self) -> JinjaEnv:
return JinjaEnv()
|
get_template(render_config: INPUTS_SCHEMA) -> Template
abstractmethod
Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/renderers/jinja.py
| @abc.abstractmethod
def get_template(self, render_config: INPUTS_SCHEMA) -> Template:
pass
|
Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/renderers/jinja.py
| @abc.abstractmethod
def assemble_render_inputs(
self, instance: Any, render_config: INPUTS_SCHEMA
) -> Mapping[str, Any]:
pass
|