Printout tracebacks in debug mode for exception during template processing

This commit is contained in:
Kovid Goyal 2013-10-17 14:14:47 +05:30
parent 73e7ddcefe
commit 965db88065
2 changed files with 5 additions and 3 deletions

View File

@ -13,6 +13,8 @@ from calibre.utils.config_base import tweaks
class LockingError(RuntimeError):
is_locking_error = True
def __init__(self, msg, extra=None):
RuntimeError.__init__(self, msg)
self.locking_debug_msg = extra

View File

@ -515,8 +515,8 @@ class TemplateFormatter(string.Formatter):
try:
ans = self.evaluate(fmt, [], kwargs).strip()
except Exception as e:
# if DEBUG:
# traceback.print_exc()
if DEBUG and getattr(e, 'is_locking_error', False):
traceback.print_exc()
ans = error_value + ' ' + e.message
return ans
@ -529,7 +529,7 @@ class ValidateFormatter(TemplateFormatter):
def validate(self, x):
from calibre.ebooks.metadata.book.base import Metadata
self.book = Metadata('');
self.book = Metadata('')
return self.vformat(x, [], {})
validation_formatter = ValidateFormatter()