From 8063abfc19cf6aeb022d931b6880ab3aec2f7302 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 26 Nov 2012 14:19:33 +0100 Subject: [PATCH] 1) fix problem with some formatter functions causing plugboards not to validate 2) fix use of {formats} in save templates --- src/calibre/library/save_to_disk.py | 3 ++- src/calibre/utils/formatter.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/library/save_to_disk.py b/src/calibre/library/save_to_disk.py index 550ac3251e..a2b8b01a8f 100644 --- a/src/calibre/library/save_to_disk.py +++ b/src/calibre/library/save_to_disk.py @@ -20,6 +20,7 @@ from calibre.ebooks.metadata import title_sort from calibre.utils.date import parse_date, as_local_time from calibre import strftime, prints, sanitize_file_name_unicode from calibre.ptempfile import SpooledTemporaryFile +from calibre.db.lazy import FormatsList plugboard_any_device_value = 'any device' plugboard_any_format_value = 'any format' @@ -159,7 +160,7 @@ class Formatter(TemplateFormatter): return self.composite_values[key] if key in kwargs: val = kwargs[key] - if isinstance(val, list): + if isinstance(val, list) or isinstance(val, FormatsList): val = ','.join(val) return val.replace('/', '_').replace('\\', '_') return '' diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 89e2395dff..0711013437 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -526,6 +526,8 @@ class ValidateFormatter(TemplateFormatter): return self._validation_string def validate(self, x): + from calibre.ebooks.metadata.book.base import Metadata + self.book = Metadata(''); return self.vformat(x, [], {}) validation_formatter = ValidateFormatter()