summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--patternutils/commands/targs.py2
-rw-r--r--patternutils/commands/tln.py4
-rw-r--r--patternutils/commands/tmv.py8
-rw-r--r--patternutils/template.py24
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: