diff options
| author | Dennis Fink | 2025-07-14 16:32:15 +0200 |
|---|---|---|
| committer | Dennis Fink | 2025-07-14 16:32:15 +0200 |
| commit | 83e24b1e572c9755c1be69e520ea081fadac136c (patch) | |
| tree | cec4c5a773db89366222a2c22d1bcb42a0be5263 | |
| parent | 8e3ef3dd8bf34e27881856378502456021ba407a (diff) | |
| download | patternutils-83e24b1e572c9755c1be69e520ea081fadac136c.tar.gz patternutils-83e24b1e572c9755c1be69e520ea081fadac136c.zip | |
Fix jinja env overlay
| -rw-r--r-- | patternutils/commands/targs.py | 2 | ||||
| -rw-r--r-- | patternutils/commands/tln.py | 4 | ||||
| -rw-r--r-- | patternutils/commands/tmv.py | 8 | ||||
| -rw-r--r-- | patternutils/template.py | 24 |
4 files changed, 22 insertions, 16 deletions
diff --git a/patternutils/commands/targs.py b/patternutils/commands/targs.py index 8280faa..3bb0ce8 100644 --- a/patternutils/commands/targs.py +++ b/patternutils/commands/targs.py @@ -143,7 +143,7 @@ def targs( raise SystemExit(1) try: - render = template.get_render_function(command, engine=template_engine) + render = template.get_render_function(command, "targs", engine=template_engine) except RuntimeError: click.secho("Jinja2 not installed!", fg="red", err=True) raise SystemExit(1) diff --git a/patternutils/commands/tln.py b/patternutils/commands/tln.py index d125f96..1de4ccd 100644 --- a/patternutils/commands/tln.py +++ b/patternutils/commands/tln.py @@ -135,7 +135,9 @@ def tln( raise SystemExit try: - render = template.get_render_function(output_pattern, engine=template_engine) + render = template.get_render_function( + output_pattern, "tln", engine=template_engine + ) except RuntimeError: click.secho("jinja2 not installed!", fg="red", err=True) raise SystemExit diff --git a/patternutils/commands/tmv.py b/patternutils/commands/tmv.py index 9198171..7ddcf8e 100644 --- a/patternutils/commands/tmv.py +++ b/patternutils/commands/tmv.py @@ -148,13 +148,17 @@ def tmv( raise SystemExit(1) try: - render = template.get_render_function(output_pattern, engine=template_engine) + render = template.get_render_function( + output_pattern, "tmv", engine=template_engine + ) except RuntimeError: click.secho("Jinja2 not installed!", fg="red", err=True) raise SystemExit(1) + new_filenames = dict() try: - new_filenames = {entry[key]: render(**entry) for entry in data} + for entry in data: + new_filenames[entry[key]] = render(**entry) except KeyError: click.secho(f"Key '{key}' not found in input data.", fg="red", err=True) if abort_on_key_not_found: diff --git a/patternutils/template.py b/patternutils/template.py index 86e5a97..ce09768 100644 --- a/patternutils/template.py +++ b/patternutils/template.py @@ -1,4 +1,5 @@ -from typing import Callable, Optional, cast +import os.path +from typing import Callable, cast from .config import CONFIG_PATH from .types import TemplateCommands, TemplateExtensions @@ -54,9 +55,9 @@ else: def get_render_function( template: str, + command_name: TemplateCommands, *, engine: TemplateExtensions = "python", - command_name: Optional[TemplateCommands] = None, ) -> Callable[..., str]: """Returns a function that renders a template using the specified engine. @@ -72,17 +73,16 @@ def get_render_function( """ if engine == "jinja2": if jinja_feature: - if command_name is not None: - jinja_env_overlay = jinja_env.overlay( - loader=jinja2.ChoiceLoader( - [ - jinja2.FileSystemLoader(CONFIG_PATH / command_name), - jinja2.FileSystemLoader(CONFIG_PATH / "globals"), - ] - ) + jinja_env_overlay = jinja_env.overlay( + loader=jinja2.ChoiceLoader( + [ + jinja2.FileSystemLoader( + os.path.join(CONFIG_PATH, command_name) + ), + jinja2.FileSystemLoader(os.path.join(CONFIG_PATH, "globals")), + ] ) - else: - jinja_env_overlay = jinja_env + ) env_template = jinja_env_overlay.from_string(template) return cast(Callable[..., str], env_template.render) else: |
