Skip to content

Commit e6a3256

Browse files
committed
Add try except on load plugin from entry points
Signed-off-by: Nig3l <[email protected]>
1 parent ee6f9bf commit e6a3256

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

src/rez/plugin_managers.py

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -172,23 +172,32 @@ def load_plugins_from_namespace(self):
172172
self.register_plugin_module(plugin_name, plugin_module, path)
173173
self.load_config_from_plugin(plugin_module)
174174
except Exception as e:
175-
nameish = modname.split('.')[-1]
176-
self.failed_plugins[nameish] = str(e)
177-
if config.debug("plugins"):
178-
import traceback
179-
from io import StringIO
180-
out = StringIO()
181-
traceback.print_exc(file=out)
182-
print_debug(out.getvalue())
175+
self.print_log_plugins_error(modname, e)
183176

184177
def load_plugins_from_entry_points(self):
185178
discovered_plugins = entry_points(group='rez.plugins')
186179
for plugin in discovered_plugins:
187-
plugin = plugin.load()
188-
plugin_name = plugin.__name__.split('.')[-1]
189-
plugin_path = os.path.dirname(plugin.__file__)
190-
self.register_plugin_module(plugin_name, plugin, plugin_path)
191-
self.load_config_from_plugin(plugin)
180+
try:
181+
plugin = plugin.load()
182+
plugin_name = plugin.__name__
183+
plugin_path = os.path.dirname(plugin.__file__)
184+
self.register_plugin_module(plugin_name, plugin, plugin_path)
185+
self.load_config_from_plugin(plugin)
186+
except Exception as e:
187+
self.print_log_plugins_error(plugin.__name__, e)
188+
189+
def print_log_plugins_error(self, module_name, error):
190+
nameish = module_name.split('.')[-1]
191+
self.failed_plugins[nameish] = str(error)
192+
193+
if not config.debug("plugins"):
194+
return
195+
196+
import traceback
197+
from io import StringIO
198+
out = StringIO()
199+
traceback.print_exc(file=out)
200+
print_debug(out.getvalue())
192201

193202
def load_config_from_plugin(self, plugin):
194203
plugin_path = os.path.dirname(plugin.__file__)

0 commit comments

Comments
 (0)