# HG changeset patch # User Goffi # Date 1720803180 -7200 # Node ID 9e63e02318ec09d52968b1f083748cf7a9242e2d # Parent 4cf98f5062699aaa9cf1aeef948bb3edc061d626 core: show warning instead of exception in case of missing dependency when loading plugins diff -r 4cf98f506269 -r 9e63e02318ec libervia/backend/core/main.py --- a/libervia/backend/core/main.py Fri Jul 12 17:58:06 2024 +0200 +++ b/libervia/backend/core/main.py Fri Jul 12 18:53:00 2024 +0200 @@ -384,7 +384,7 @@ plugin_path = f"libervia.backend.plugins.{plug_name}" try: __import__(plugin_path) - except exceptions.MissingModule as e: + except (ModuleNotFoundError, exceptions.MissingModule) as e: self._unimport_plugin(plugin_path) log.warning( "Can't import plugin [{path}] because of an unavailale third party " @@ -503,10 +503,17 @@ # we instanciate the plugin here try: self.plugins[import_name] = getattr(mod, plugin_info["main"])(self) - except Exception as e: - log.exception( - f"Can't load plugin \"{plugin_info['name']}\", ignoring it: {e}" - ) + except (exceptions.NotFound, Exception) as e: + if isinstance(e, exceptions.NotFound): + # A warning is enough for a missing dependency. + log.warning( + f"Can't load plugin \"{plugin_info['name']}\", due to missing " + f"dependency, ignoring it: {e}" + ) + else: + log.exception( + f"Can't load plugin \"{plugin_info['name']}\", ignoring it" + ) if optional: return raise ImportError("Error during initiation")