Commit graph jw-pkg/src/python/jw/pkg/cmds/projects/lib/templates.py
Author SHA1 Message Date
81e71bc5c1
cmds.projects.lib.templates.tmpl_render(): RenderValues
tmpl_render()'s "values" argument currently understands
dict[str,str|list[str]]. Enhance that to understand the broader
RenderValues type, which also includes Iterable[tuple[str, str]], as
produced by argparse.add_argument(action='append').

This commit also adds proper type-checking for the values argument.
Before, its type had gone unchecked entirely.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-09 07:45:49 +02:00
841fb8b361
cmds.projects.lib.templates.tmpl_render(): search_path
Add an additional keyword-argument search_path to
templates.tmpl_render(). It allows to specifiy a list of directory
paths in which a template of a given name can be found. It defaults
to [], in which case only the built-in templates are considered.
Otherwise file locations are tried first, then the built-in
templates.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-09 07:45:15 +02:00
7edf5a4c26
cmds.projects.lib.templates: Add module
Add tmpl_render(), a function to provide a primitive template
renderer. It takes a dictionary for values to replace variables
shaped {some-variable} in templates found by their name. For now, the
templates are defined in the templates module instead of being read
from a template directory. The values may be lists, in which case
they are rendered with a delimiter, defaulting to ",".

Using an existing template engine like jinja2 is tempting but would
introduce additional dependencies jw-pkg is trying hard to avoid.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-31 17:52:20 +02:00