src/eric7/PluginManager/PluginManager.py

branch
eric7
changeset 10760
f702f6781b05
parent 10683
779cda568acb
child 10800
c6ce5522be30
equal deleted inserted replaced
10758:1fd5ea95c0e3 10760:f702f6781b05
10 import contextlib 10 import contextlib
11 import datetime 11 import datetime
12 import importlib 12 import importlib
13 import importlib.util 13 import importlib.util
14 import itertools 14 import itertools
15 import logging
15 import os 16 import os
16 import pathlib 17 import pathlib
17 import sys 18 import sys
18 import types 19 import types
19 import zipfile 20 import zipfile
624 @rtype tuple of (QObject, str) 625 @rtype tuple of (QObject, str)
625 @exception PluginActivationError raised to indicate an issue during the 626 @exception PluginActivationError raised to indicate an issue during the
626 plug-in activation 627 plug-in activation
627 """ 628 """
628 try: 629 try:
630 logging.getLogger(__name__).debug(f"Activating Plugin '{name}'...")
629 try: 631 try:
630 module = ( 632 module = (
631 self.__onDemandInactiveModules[name] 633 self.__onDemandInactiveModules[name]
632 if onDemand 634 if onDemand
633 else self.__inactiveModules[name] 635 else self.__inactiveModules[name]
634 ) 636 )
635 except KeyError: 637 except KeyError:
638 logging.getLogger(__name__).debug(f"No such plugin module: '{name}'")
636 return None, f"no such plugin module: {name}" 639 return None, f"no such plugin module: {name}"
637 640
638 if not self.__canActivatePlugin(module): 641 if not self.__canActivatePlugin(module):
639 raise PluginActivationError(module.eric7PluginModuleName) 642 raise PluginActivationError(module.eric7PluginModuleName)
640 version = getPluginHeaderEntry(module, "version", "0.0.0") 643 version = getPluginHeaderEntry(module, "version", "0.0.0")
657 except Exception as err: 660 except Exception as err:
658 module.error = str(err) 661 module.error = str(err)
659 obj = None 662 obj = None
660 ok = False 663 ok = False
661 if not ok: 664 if not ok:
665 logging.getLogger(__name__).debug(
666 f"Error activating plugin '{name}': {module.error}"
667 )
662 return None, module.error 668 return None, module.error
663 669
664 self.pluginActivated.emit(name, pluginObject) 670 self.pluginActivated.emit(name, pluginObject)
665 pluginObject.eric7PluginModule = module 671 pluginObject.eric7PluginModule = module
666 pluginObject.eric7PluginName = className 672 pluginObject.eric7PluginName = className
678 self.__inactivePlugins.pop(name) 684 self.__inactivePlugins.pop(name)
679 self.__activePlugins[name] = pluginObject 685 self.__activePlugins[name] = pluginObject
680 self.__activeModules[name] = module 686 self.__activeModules[name] = module
681 return obj, "" 687 return obj, ""
682 except PluginActivationError as err: 688 except PluginActivationError as err:
689 logging.getLogger(__name__).debug(
690 f"Error activating plugin '{name}': {str(err)}"
691 )
683 return None, str(err) 692 return None, str(err)
684 693
685 def __canActivatePlugin(self, module): 694 def __canActivatePlugin(self, module):
686 """ 695 """
687 Private method to check, if a plugin can be activated. 696 Private method to check, if a plugin can be activated.

eric ide

mercurial