src/eric7/PluginManager/PluginManager.py

branch
eric7
changeset 10373
093dcebe5ecb
parent 10372
1444b4bee64b
child 10439
21c28b0f9e41
--- a/src/eric7/PluginManager/PluginManager.py	Sun Dec 03 16:44:52 2023 +0100
+++ b/src/eric7/PluginManager/PluginManager.py	Sun Dec 03 19:46:34 2023 +0100
@@ -10,6 +10,7 @@
 import contextlib
 import datetime
 import importlib
+import itertools
 import os
 import pathlib
 import sys
@@ -176,8 +177,9 @@
         """
         Public method to finalize the setup of the plugin manager.
         """
-        for module in list(self.__onDemandInactiveModules.values()) + list(
-            self.__onDemandActiveModules.values()
+        for module in itertools.chain(
+            self.__onDemandInactiveModules.values(),
+            self.__onDemandActiveModules.values(),
         ):
             if hasattr(module, "moduleSetup"):
                 module.moduleSetup()
@@ -526,7 +528,7 @@
         found = False
         if not package:
             package = "__None__"
-        for moduleName in list(sys.modules.keys())[:]:
+        for moduleName in list(sys.modules):
             if moduleName == pluginName or moduleName.split(".")[0] in packages:
                 found = True
                 del sys.modules[moduleName]
@@ -538,7 +540,7 @@
 
         Note: The plugins are not activated.
         """
-        names = sorted(self.__onDemandInactiveModules.keys())
+        names = sorted(self.__onDemandInactiveModules)
         for name in names:
             self.initOnDemandPlugin(name)
 
@@ -602,7 +604,7 @@
             and self.__develPluginName in inactiveList
         ):
             inactiveList.remove(self.__develPluginName)
-        names = sorted(self.__inactiveModules.keys())
+        names = sorted(self.__inactiveModules)
         for name in names:
             if name not in inactiveList:
                 self.activatePlugin(name)
@@ -791,7 +793,7 @@
         @return reference to the initialized plugin object and an error string
         @rtype tuple of (QObject, str)
         """
-        for name, module in list(self.__onDemandInactiveModules.items()):
+        for name, module in self.__onDemandInactiveModules.items():
             if (
                 getPluginHeaderEntry(module, "pluginType", "") == type_
                 and getPluginHeaderEntry(module, "pluginTypename", "") == typename
@@ -799,7 +801,7 @@
                 return self.activatePlugin(name, onDemand=True)
 
         if maybeActive:
-            for name, module in list(self.__onDemandActiveModules.items()):
+            for name, module in self.__onDemandActiveModules.items():
                 if (
                     getPluginHeaderEntry(module, "pluginType", "") == type_
                     and getPluginHeaderEntry(module, "pluginTypename", "") == typename
@@ -822,7 +824,7 @@
         infos = []
 
         # 1. active, non-on-demand modules
-        for name in list(self.__activeModules.keys()):
+        for name in self.__activeModules:
             info = self.__getShortInfo(self.__activeModules[name])
             info.update(
                 {
@@ -834,7 +836,7 @@
             infos.append(info)
 
         # 2. inactive, non-on-demand modules
-        for name in list(self.__inactiveModules.keys()):
+        for name in self.__inactiveModules:
             info = self.__getShortInfo(self.__inactiveModules[name])
             info.update(
                 {
@@ -846,7 +848,7 @@
             infos.append(info)
 
         # 3. active, on-demand modules
-        for name in list(self.__onDemandActiveModules.keys()):
+        for name in self.__onDemandActiveModules:
             info = self.__getShortInfo(self.__onDemandActiveModules[name])
             info.update(
                 {
@@ -858,7 +860,7 @@
             infos.append(info)
 
         # 4. inactive, non-on-demand modules
-        for name in list(self.__onDemandInactiveModules.keys()):
+        for name in self.__onDemandInactiveModules:
             info = self.__getShortInfo(self.__onDemandInactiveModules[name])
             info.update(
                 {
@@ -870,7 +872,7 @@
             infos.append(info)
 
         # 5. failed modules
-        for name in list(self.__failedModules.keys()):
+        for name in self.__failedModules:
             info = self.__getShortInfo(self.__failedModules[name])
             info.update(
                 {
@@ -956,7 +958,7 @@
         Public method called to perform actions upon shutdown of the IDE.
         """
         names = []
-        for name in list(self.__inactiveModules.keys()):
+        for name in self.__inactiveModules:
             names.append(name)
         Preferences.getSettings().setValue(self.__inactivePluginsKey, names)
 
@@ -974,8 +976,9 @@
         """
         pluginDict = {}
 
-        for module in list(self.__onDemandActiveModules.values()) + list(
-            self.__onDemandInactiveModules.values()
+        for module in itertools.chain(
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
         ):
             if (
                 getPluginHeaderEntry(module, "pluginType", "") == type_
@@ -1000,8 +1003,9 @@
         @return preview pixmap
         @rtype QPixmap
         """
-        for module in list(self.__onDemandActiveModules.values()) + list(
-            self.__onDemandInactiveModules.values()
+        for module in itertools.chain(
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
         ):
             if (
                 getPluginHeaderEntry(module, "pluginType", "") == type_
@@ -1025,8 +1029,9 @@
         """
         apis = []
 
-        for module in list(self.__activeModules.values()) + list(
-            self.__onDemandActiveModules.values()
+        for module in itertools.chain(
+            self.__activeModules.values(),
+            self.__onDemandActiveModules.values(),
         ):
             if hasattr(module, "apiFiles"):
                 apis.extend(module.apiFiles(language))
@@ -1043,8 +1048,9 @@
         @rtype dict (key: str, value: list of str)
         """
         helpFiles = {}
-        for module in list(self.__activeModules.values()) + list(
-            self.__onDemandActiveModules.values()
+        for module in itertools.chain(
+            self.__activeModules.values(),
+            self.__onDemandActiveModules.values(),
         ):
             if hasattr(module, "helpFiles"):
                 helpFiles.update(module.helpFiles())
@@ -1088,15 +1094,11 @@
         """
         infos = []
 
-        for module in list(self.__activeModules.values()) + list(
-            self.__inactiveModules.values()
-        ):
-            if hasattr(module, "exeDisplayDataList"):
-                infos.extend(module.exeDisplayDataList())
-            elif hasattr(module, "exeDisplayData"):
-                infos.append(module.exeDisplayData())
-        for module in list(self.__onDemandActiveModules.values()) + list(
-            self.__onDemandInactiveModules.values()
+        for module in itertools.chain(
+            self.__activeModules.values(),
+            self.__inactiveModules.values(),
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
         ):
             if hasattr(module, "exeDisplayDataList"):
                 infos.extend(module.exeDisplayDataList())
@@ -1139,10 +1141,10 @@
         @rtype dict
         """
         configData = {}
-        for module in (
-            list(self.__activeModules.values())
-            + list(self.__onDemandActiveModules.values())
-            + list(self.__onDemandInactiveModules.values())
+        for module in itertools.chain(
+            self.__activeModules.values(),
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
         ):
             if hasattr(module, "getConfigData"):
                 configData.update(module.getConfigData())
@@ -1201,14 +1203,15 @@
         """
         vcsDict = {}
 
-        for module in list(self.__onDemandActiveModules.values()) + list(
-            self.__onDemandInactiveModules.values()
+        for module in itertools.chain(
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
         ):
             if getPluginHeaderEntry(
                 module, "pluginType", ""
             ) == "version_control" and hasattr(module, "getVcsSystemIndicator"):
                 res = module.getVcsSystemIndicator()
-                for indicator, vcsData in list(res.items()):
+                for indicator, vcsData in res.items():
                     if indicator in vcsDict:
                         vcsDict[indicator].append(vcsData)
                     else:
@@ -1485,11 +1488,11 @@
         @param type_ type of the plugin to clear private data for
         @type str
         """
-        for module in (
-            list(self.__onDemandActiveModules.values())
-            + list(self.__onDemandInactiveModules.values())
-            + list(self.__activeModules.values())
-            + list(self.__inactiveModules.values())
+        for module in itertools.chain(
+            self.__onDemandActiveModules.values(),
+            self.__onDemandInactiveModules.values(),
+            self.__activeModules.values(),
+            self.__inactiveModules.values(),
         ):
             if getPluginHeaderEntry(module, "pluginType", "") == type_ and hasattr(
                 module, "clearPrivateData"

eric ide

mercurial