aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/formatter.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/formatter.py')
-rw-r--r--gallery_dl/formatter.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/gallery_dl/formatter.py b/gallery_dl/formatter.py
index cc9af11..5246f66 100644
--- a/gallery_dl/formatter.py
+++ b/gallery_dl/formatter.py
@@ -40,7 +40,15 @@ def parse(format_string, default=NONE, fmt=format):
else:
cls = StringFormatter
- formatter = _CACHE[key] = cls(format_string, default, fmt)
+ try:
+ formatter = _CACHE[key] = cls(format_string, default, fmt)
+ except Exception as exc:
+ import logging
+ logging.getLogger("formatter").error(
+ "Invalid format string '%s' (%s: %s)",
+ format_string, exc.__class__.__name__, exc)
+ raise
+
return formatter
@@ -259,7 +267,7 @@ class TemplateFormatter(StringFormatter):
"""Read format_string from file"""
def __init__(self, path, default=NONE, fmt=format):
- with open(util.expand_path(path)) as fp:
+ with open(util.expand_path(path), encoding="utf-8") as fp:
format_string = fp.read()
StringFormatter.__init__(self, format_string, default, fmt)
@@ -268,7 +276,7 @@ class TemplateFStringFormatter(FStringFormatter):
"""Read f-string from file"""
def __init__(self, path, default=NONE, fmt=None):
- with open(util.expand_path(path)) as fp:
+ with open(util.expand_path(path), encoding="utf-8") as fp:
fstring = fp.read()
FStringFormatter.__init__(self, fstring, default, fmt)
@@ -277,7 +285,7 @@ class TemplateJinjaFormatter(JinjaFormatter):
"""Generate text by evaluating a Jinja template"""
def __init__(self, path, default=NONE, fmt=None):
- with open(util.expand_path(path)) as fp:
+ with open(util.expand_path(path), encoding="utf-8") as fp:
source = fp.read()
JinjaFormatter.__init__(self, source, default, fmt)