mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-31 19:45:15 +02:00
feat(automation): add recursive render_value to templating
This commit is contained in:
parent
cb42b3a84f
commit
8b87d179e9
2 changed files with 13 additions and 1 deletions
|
|
@ -16,3 +16,14 @@ def render_template(template: str, context: Mapping[str, Any]) -> str:
|
|||
def evaluate_predicate(expression: str, context: Mapping[str, Any]) -> bool:
|
||||
"""Evaluate a Jinja expression (not a template body) and coerce to bool."""
|
||||
return bool(ENV.compile_expression(expression)(**context))
|
||||
|
||||
|
||||
def render_value(value: Any, context: Mapping[str, Any]) -> Any:
|
||||
"""Recursively render every string in a JSON-like value structure."""
|
||||
if isinstance(value, str):
|
||||
return render_template(value, context)
|
||||
if isinstance(value, dict):
|
||||
return {k: render_value(v, context) for k, v in value.items()}
|
||||
if isinstance(value, list):
|
||||
return [render_value(v, context) for v in value]
|
||||
return value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue