From 452bb19df11ef872d856d3530e94e6bd09c79255 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 25 Jan 2015 06:36:05 +0530 Subject: [PATCH] Nicer error message when writing the thumbnail width to the cache fails --- src/calibre/library/catalogs/epub_mobi_builder.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/library/catalogs/epub_mobi_builder.py b/src/calibre/library/catalogs/epub_mobi_builder.py index 982622f930..e091a26d73 100644 --- a/src/calibre/library/catalogs/epub_mobi_builder.py +++ b/src/calibre/library/catalogs/epub_mobi_builder.py @@ -7,8 +7,8 @@ import datetime, os, platform, re, shutil, time, unicodedata, zlib from copy import deepcopy from xml.sax.saxutils import escape -from calibre import (prepare_string_for_xml, strftime, force_unicode, - isbytestring, replace_entities) +from calibre import ( + prepare_string_for_xml, strftime, force_unicode, isbytestring, replace_entities, as_unicode) from calibre.constants import isosx, cache_dir from calibre.customize.conversion import DummyReporter from calibre.customize.ui import output_profiles @@ -4442,8 +4442,12 @@ class CatalogBuilder(object): # Write thumb_width to the file, validating cache contents # Allows detection of aborted catalog builds - with ZipFile(self.thumbs_path, mode='a') as zfw: - zfw.writestr('thumb_width', self.opts.thumb_width) + try: + with ZipFile(self.thumbs_path, mode='a') as zfw: + zfw.writestr('thumb_width', self.opts.thumb_width) + except Exception as err: + raise ValueError('There was an error writing to the thumbnail cache: %s\n' + 'Try deleting it. Underlying error: %s' % (force_unicode(self.thumbs_path), as_unicode(err))) self.thumbs = thumbs