--- a/PluginManager/PluginManager.py Mon Jan 22 11:25:48 2018 +0100 +++ b/PluginManager/PluginManager.py Mon Jan 22 15:59:30 2018 +0100 @@ -735,38 +735,66 @@ def getPluginInfos(self): """ - Public method to get infos about all loaded plugins. + Public method to get infos about all loaded plug-ins. - @return list of tuples giving module name (string), plugin name - (string), version (string), autoactivate (boolean), active - (boolean), short description (string), error flag (boolean) + @return list of dictionaries with keys "module_name", "plugin_name", + "version", "auto_activate", "active", "short_desc", "error" + @rtype list of dict ("module_name": str, "plugin_name": str, + "version": str, "auto_activate": bool, "active": bool, + "short_desc": str, "error": bool) """ infos = [] + # 1. active, non-on-demand modules for name in list(self.__activeModules.keys()): - pname, shortDesc, error, version = \ - self.__getShortInfo(self.__activeModules[name]) - infos.append((name, pname, version, True, True, shortDesc, error)) + info = self.__getShortInfo(self.__activeModules[name]) + info.update({ + "module_name": name, + "auto_activate": True, + "active": True, + }) + infos.append(info) + + # 2. inactive, non-on-demand modules for name in list(self.__inactiveModules.keys()): - pname, shortDesc, error, version = \ - self.__getShortInfo(self.__inactiveModules[name]) - infos.append( - (name, pname, version, True, False, shortDesc, error)) + info = self.__getShortInfo(self.__inactiveModules[name]) + info.update({ + "module_name": name, + "auto_activate": True, + "active": False, + }) + infos.append(info) + + # 3. active, on-demand modules for name in list(self.__onDemandActiveModules.keys()): - pname, shortDesc, error, version = \ - self.__getShortInfo(self.__onDemandActiveModules[name]) - infos.append( - (name, pname, version, False, True, shortDesc, error)) + info = self.__getShortInfo(self.__onDemandActiveModules[name]) + info.update({ + "module_name": name, + "auto_activate": False, + "active": True, + }) + infos.append(info) + + # 4. inactive, non-on-demand modules for name in list(self.__onDemandInactiveModules.keys()): - pname, shortDesc, error, version = \ - self.__getShortInfo(self.__onDemandInactiveModules[name]) - infos.append( - (name, pname, version, False, False, shortDesc, error)) + info = self.__getShortInfo(self.__onDemandInactiveModules[name]) + info.update({ + "module_name": name, + "auto_activate": False, + "active": False, + }) + infos.append(info) + + # 5. failed modules for name in list(self.__failedModules.keys()): - pname, shortDesc, error, version = \ - self.__getShortInfo(self.__failedModules[name]) - infos.append( - (name, pname, version, False, False, shortDesc, error)) + info = self.__getShortInfo(self.__failedModules[name]) + info.update({ + "module_name": name, + "auto_activate": False, + "active": False, + }) + infos.append(info) + return infos def __getShortInfo(self, module): @@ -774,15 +802,16 @@ Private method to extract the short info from a module. @param module module to extract short info from - @return short info as a tuple giving plugin name (string), - short description (string), error flag (boolean) and - version (string) + @return dictionay containing plug-in data + @rtype dict ("plugin_name": str, "version": str, "short_desc": str, + "error": bool) """ - name = getattr(module, "name", "") - shortDesc = getattr(module, "shortDescription", "") - version = getattr(module, "version", "") - error = getattr(module, "error", "") != "" - return name, shortDesc, error, version + return { + "plugin_name": getattr(module, "name", ""), + "version": getattr(module, "version", ""), + "short_desc": getattr(module, "shortDescription", ""), + "error": bool(getattr(module, "error", "")), + } def getPluginDetails(self, name): """