From ef6c2b439f3870c9b87184a63441ede054db0e34 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 20 Jul 2022 07:39:06 +0530 Subject: [PATCH] Allowing controlling if trying to get missing resources from a plugin prints a traceback --- src/calibre/customize/zipplugin.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/calibre/customize/zipplugin.py b/src/calibre/customize/zipplugin.py index 91195c3335..09a50941a8 100644 --- a/src/calibre/customize/zipplugin.py +++ b/src/calibre/customize/zipplugin.py @@ -28,7 +28,7 @@ from polyglot.builtins import itervalues, reload, string_or_bytes # have non ASCII characters -def get_resources(zfp, name_or_list_of_names): +def get_resources(zfp, name_or_list_of_names, print_tracebacks_for_missing_resources=True): ''' Load resources from the plugin zip file @@ -49,15 +49,16 @@ def get_resources(zfp, name_or_list_of_names): try: ans[name] = zf.read(name) except: - import traceback - traceback.print_exc() + if print_tracebacks_for_missing_resources: + import traceback + traceback.print_exc() if len(names) == 1: ans = ans.pop(names[0], None) return ans -def get_icons(zfp, name_or_list_of_names, plugin_name=''): +def get_icons(zfp, name_or_list_of_names, plugin_name='', print_tracebacks_for_missing_resources=True): ''' Load icons from the plugin zip file @@ -86,7 +87,7 @@ def get_icons(zfp, name_or_list_of_names, plugin_name=''): else: failed = set(namelist) if failed: - from_zfp = get_resources(zfp, list(failed)) + from_zfp = get_resources(zfp, list(failed), print_tracebacks_for_missing_resources=print_tracebacks_for_missing_resources) if from_zfp is None: from_zfp = {} elif isinstance(from_zfp, string_or_bytes):