diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 179a96e578..f98bebe1dc 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -42,6 +42,8 @@ field_metadata = FieldMetadata() class SafeFormat(TemplateFormatter): def get_value(self, orig_key, args, kwargs): + if not orig_key: + return '' key = orig_key.lower() if key != 'title_sort' and key not in TOP_LEVEL_IDENTIFIERS: key = field_metadata.search_term_to_field_key(key) diff --git a/src/calibre/library/save_to_disk.py b/src/calibre/library/save_to_disk.py index dc83b44c01..5f49833564 100644 --- a/src/calibre/library/save_to_disk.py +++ b/src/calibre/library/save_to_disk.py @@ -134,6 +134,8 @@ class SafeFormat(TemplateFormatter): ''' def get_value(self, key, args, kwargs): + if key == '': + return '' try: key = key.lower() try: diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 695355330e..ebf47db854 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -342,6 +342,8 @@ class EvalFormatter(TemplateFormatter): A template formatter that uses a simple dict instead of an mi instance ''' def get_value(self, key, args, kwargs): + if key == '': + return '' key = key.lower() return kwargs.get(key, _('No such variable ') + key)