From 72ad446b1d3f9ea3144addc9b0a653d6a01d49aa Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 28 May 2017 10:49:21 +0200 Subject: [PATCH] Remove exception in file metadata formatter functions when a book has no formats. --- src/calibre/utils/formatter_functions.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 47976b323a..bd3d20ae6e 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -791,9 +791,12 @@ class BuiltinFormatsModtimes(BuiltinFormatterFunction): def evaluate(self, formatter, kwargs, mi, locals, fmt): fmt_data = mi.get('format_metadata', {}) - data = sorted(fmt_data.items(), key=lambda x:x[1]['mtime'], reverse=True) - return ','.join(k.upper()+':'+format_date(v['mtime'], fmt) + try: + data = sorted(fmt_data.items(), key=lambda x:x[1]['mtime'], reverse=True) + return ','.join(k.upper()+':'+format_date(v['mtime'], fmt) for k,v in data) + except: + return '' class BuiltinFormatsSizes(BuiltinFormatterFunction): @@ -810,7 +813,10 @@ class BuiltinFormatsSizes(BuiltinFormatterFunction): def evaluate(self, formatter, kwargs, mi, locals): fmt_data = mi.get('format_metadata', {}) - return ','.join(k.upper()+':'+str(v['size']) for k,v in fmt_data.iteritems()) + try: + return ','.join(k.upper()+':'+str(v['size']) for k,v in fmt_data.iteritems()) + except: + return '' class BuiltinFormatsPaths(BuiltinFormatterFunction): @@ -826,7 +832,10 @@ class BuiltinFormatsPaths(BuiltinFormatterFunction): def evaluate(self, formatter, kwargs, mi, locals): fmt_data = mi.get('format_metadata', {}) - return ','.join(k.upper()+':'+str(v['path']) for k,v in fmt_data.iteritems()) + try: + return ','.join(k.upper()+':'+str(v['path']) for k,v in fmt_data.iteritems()) + except: + return '' class BuiltinHumanReadable(BuiltinFormatterFunction):