Spaces:
Running
Running
File size: 380 Bytes
b02e301 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from pathlib import Path
import re
_pat = re.compile(r"\{([a-zA-Z0-9_\.]+)\}")
def _get(ctx, path):
cur = ctx
for p in path.split("."):
cur = cur[p] if isinstance(cur, dict) else getattr(cur, p)
return cur
def render(path, vars):
txt = Path(path).read_text(encoding="utf-8")
return _pat.sub(lambda m: str(_get(vars, m.group(1))), txt)
|