From 67d570de1c99867e69796cac4710a409bfaf34c2 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sun, 29 May 2011 13:39:35 +0100 Subject: [PATCH] Permit empty keys in templates. Simplifies using functions that don't require a value --- src/calibre/ebooks/metadata/book/base.py | 2 ++ src/calibre/library/save_to_disk.py | 2 ++ src/calibre/utils/formatter.py | 2 ++ 3 files changed, 6 insertions(+) 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)