10 import os |
10 import os |
11 import sys |
11 import sys |
12 import zipfile |
12 import zipfile |
13 import types |
13 import types |
14 import importlib |
14 import importlib |
|
15 import contextlib |
15 |
16 |
16 from PyQt5.QtCore import ( |
17 from PyQt5.QtCore import ( |
17 pyqtSignal, QObject, QDate, QFile, QFileInfo, QUrl, QIODevice |
18 pyqtSignal, QObject, QDate, QFile, QFileInfo, QUrl, QIODevice |
18 ) |
19 ) |
19 from PyQt5.QtGui import QPixmap |
20 from PyQt5.QtGui import QPixmap |
641 pluginObject.eric6PluginName = className |
642 pluginObject.eric6PluginName = className |
642 pluginObject.eric6PluginVersion = version |
643 pluginObject.eric6PluginVersion = version |
643 |
644 |
644 if onDemand: |
645 if onDemand: |
645 self.__onDemandInactiveModules.pop(name) |
646 self.__onDemandInactiveModules.pop(name) |
646 try: |
647 with contextlib.suppress(KeyError): |
647 self.__onDemandInactivePlugins.pop(name) |
648 self.__onDemandInactivePlugins.pop(name) |
648 except KeyError: |
|
649 pass |
|
650 self.__onDemandActivePlugins[name] = pluginObject |
649 self.__onDemandActivePlugins[name] = pluginObject |
651 self.__onDemandActiveModules[name] = module |
650 self.__onDemandActiveModules[name] = module |
652 else: |
651 else: |
653 self.__inactiveModules.pop(name) |
652 self.__inactiveModules.pop(name) |
654 try: |
653 with contextlib.suppress(KeyError): |
655 self.__inactivePlugins.pop(name) |
654 self.__inactivePlugins.pop(name) |
656 except KeyError: |
|
657 pass |
|
658 self.__activePlugins[name] = pluginObject |
655 self.__activePlugins[name] = pluginObject |
659 self.__activeModules[name] = module |
656 self.__activeModules[name] = module |
660 return obj |
657 return obj |
661 except PluginActivationError: |
658 except PluginActivationError: |
662 return None |
659 return None |
737 self.__onDemandActivePlugins.pop(name) |
734 self.__onDemandActivePlugins.pop(name) |
738 self.__onDemandInactivePlugins[name] = pluginObject |
735 self.__onDemandInactivePlugins[name] = pluginObject |
739 self.__onDemandInactiveModules[name] = module |
736 self.__onDemandInactiveModules[name] = module |
740 else: |
737 else: |
741 self.__activeModules.pop(name) |
738 self.__activeModules.pop(name) |
742 try: |
739 with contextlib.suppress(KeyError): |
743 self.__activePlugins.pop(name) |
740 self.__activePlugins.pop(name) |
744 except KeyError: |
|
745 pass |
|
746 self.__inactivePlugins[name] = pluginObject |
741 self.__inactivePlugins[name] = pluginObject |
747 self.__inactiveModules[name] = module |
742 self.__inactiveModules[name] = module |
748 |
743 |
749 def __canDeactivatePlugin(self, module): |
744 def __canDeactivatePlugin(self, module): |
750 """ |
745 """ |