src/eric7/PluginManager/PluginManager.py

Sun, 03 Dec 2023 19:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 03 Dec 2023 19:46:34 +0100
branch
eric7
changeset 10373
093dcebe5ecb
parent 10372
1444b4bee64b
child 10439
21c28b0f9e41
permissions
-rw-r--r--

Corrected some uses of dict.keys(), dict.values() and dict.items().

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
3 # Copyright (c) 2007 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Plugin Manager.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
10 import contextlib
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
11 import datetime
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
12 import importlib
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
13 import itertools
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
14 import os
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
15 import pathlib
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
16 import sys
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
17 import types
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
18 import zipfile
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
20 from PyQt6.QtCore import QFile, QIODevice, QObject, QUrl, pyqtSignal
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
21 from PyQt6.QtGui import QPixmap
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
22 from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest
537
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 496
diff changeset
23
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
24 from eric7 import Globals, Preferences
9470
34f2493c1d3f Prepared the code for isort imports reordering.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9448
diff changeset
25 from eric7.EricGui import EricPixmapCache
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
26 from eric7.EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
27 from eric7.EricWidgets import EricMessageBox
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
28 from eric7.EricWidgets.EricApplication import ericApp
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
29 from eric7.EricXML.PluginRepositoryReader import PluginRepositoryReader
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
30 from eric7.Globals import getConfig
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
31 from eric7.SystemUtilities import FileSystemUtilities, PythonUtilities
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
33 try:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
34 from eric7.EricNetwork.EricSslErrorHandler import (
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
35 EricSslErrorHandler,
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
36 EricSslErrorState,
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
37 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
39 SSL_AVAILABLE = True
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
40 except ImportError:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
41 SSL_AVAILABLE = False
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
42
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
43 from .PluginExceptions import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
44 PluginActivationError,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
45 PluginClassFormatError,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46 PluginLoadError,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47 PluginModuleFormatError,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
48 PluginModulesError,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9470
diff changeset
49 PluginPathError,
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
50 )
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
51 from .PluginUtilities import getPluginHeaderEntry, hasPluginHeaderEntry
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
53
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 class PluginManager(QObject):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Class implementing the Plugin Manager.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @signal shutdown() emitted at shutdown of the IDE
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
59 @signal pluginAboutToBeActivated(modulName, pluginObject) emitted just
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
60 before a plugin is activated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
61 @signal pluginActivated(moduleName, pluginObject) emitted just after
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
62 a plugin was activated
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @signal allPlugginsActivated() emitted at startup after all plugins have
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 been activated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
65 @signal pluginAboutToBeDeactivated(moduleName, pluginObject) emitted just
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
66 before a plugin is deactivated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
67 @signal pluginDeactivated(moduleName, pluginObject) emitted just after
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
68 a plugin was deactivated
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
69 @signal pluginRepositoryFileDownloaded() emitted to indicate a completed
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
70 download of the plugin repository file
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
73 shutdown = pyqtSignal()
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
74 pluginAboutToBeActivated = pyqtSignal(str, object)
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
75 pluginActivated = pyqtSignal(str, object)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
76 allPlugginsActivated = pyqtSignal()
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
77 pluginAboutToBeDeactivated = pyqtSignal(str, object)
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
78 pluginDeactivated = pyqtSignal(str, object)
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
79 pluginRepositoryFileDownloaded = pyqtSignal()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82 self, parent=None, disabledPlugins=None, doLoadPlugins=True, develPlugin=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
83 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 The Plugin Manager deals with three different plugin directories.
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
88 The first is the one, that is part of eric7 (eric7/Plugins). The
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
89 second one is the global plugin directory called 'eric7plugins',
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 which is located inside the site-packages directory. The last one
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
91 is the user plugin directory located inside the .eric7 directory
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 of the users home directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
93
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
94 @param parent reference to the parent object
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
95 @type QObject
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
96 @param disabledPlugins list of plug-ins that have been disabled via
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
97 the command line parameters '--disable-plugin='
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
98 @type list of str
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
99 @param doLoadPlugins flag indicating, that plug-ins should
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
100 be loaded
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
101 @type bool
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
102 @param develPlugin filename of a plug-in to be loaded for
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
103 development
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
104 @type str
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
105 @exception PluginPathError raised to indicate an invalid plug-in path
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
106 @exception PluginModulesError raised to indicate the absence of
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
107 plug-in modules
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
109 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.__ui = parent
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.__develPluginFile = develPlugin
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.__develPluginName = None
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
114 if disabledPlugins is not None:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
115 self.__disabledPlugins = disabledPlugins[:]
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
116 else:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
117 self.__disabledPlugins = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.__inactivePluginsKey = "PluginManager/InactivePlugins"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.pluginDirs = {
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122 "eric7": os.path.join(getConfig("ericDir"), "Plugins"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123 "global": os.path.join(
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
124 PythonUtilities.getPythonLibraryDirectory(), "eric7plugins"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125 ),
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
126 "user": os.path.join(Globals.getConfigDir(), "eric7plugins"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 }
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
128 self.__priorityOrder = ["eric7", "global", "user"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
130 self.__defaultDownloadDir = os.path.join(Globals.getConfigDir(), "Downloads")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
131
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.__activePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__inactivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 self.__onDemandActivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 self.__onDemandInactivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.__activeModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.__inactiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.__onDemandActiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 self.__onDemandInactiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 self.__failedModules = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
141
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.__foundCoreModules = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 self.__foundGlobalModules = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 self.__foundUserModules = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.__modulesCount = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 pdirsExist, msg = self.__pluginDirectoriesExist()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 if not pdirsExist:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 raise PluginPathError(msg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 if doLoadPlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 if not self.__pluginModulesExist():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 raise PluginModulesError
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.__insertPluginsPaths()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
157
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 self.__loadPlugins()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.__checkPluginsDownloadDirectory()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162 self.pluginRepositoryFile = os.path.join(
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
163 Globals.getConfigDir(), "PluginRepository"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
165
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
166 # attributes for the network objects
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
167 self.__networkManager = QNetworkAccessManager(self)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
168 self.__networkManager.proxyAuthenticationRequired.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169 proxyAuthenticationRequired
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
170 )
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
171 if SSL_AVAILABLE:
8354
12ebd3934fef Renamed 'E5Utilities' to 'EricUtilities' and 'E5Network' to 'EricNetwork'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
172 self.__sslErrorHandler = EricSslErrorHandler(self)
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
173 self.__networkManager.sslErrors.connect(self.__sslErrors)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
174 self.__replies = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 def finalizeSetup(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 Public method to finalize the setup of the plugin manager.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
180 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
181 self.__onDemandInactiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
182 self.__onDemandActiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
183 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if hasattr(module, "moduleSetup"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 module.moduleSetup()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 def getPluginDir(self, key):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 Public method to get the path of a plugin directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
190
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
191 @param key key of the plug-in directory
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
192 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
193 @return path of the requested plugin directory
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
194 @rtype str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 if key not in ["global", "user"]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 return self.pluginDirs[key]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 def __pluginDirectoriesExist(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 Private method to check, if the plugin folders exist.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 If the plugin folders don't exist, they are created (if possible).
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
209
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
210 @return tuple of a flag indicating existence of any of the plugin
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
211 directories and a message
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
212 @rtype tuple of (bool, str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 if self.__develPluginFile:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
215 path = FileSystemUtilities.splitPath(self.__develPluginFile)[0]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 fname = os.path.join(path, "__init__.py")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if not os.path.exists(fname):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 try:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7400
diff changeset
219 with open(fname, "w"):
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7400
diff changeset
220 pass
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
221 except OSError:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
222 return (
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
223 False,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
224 self.tr("Could not create a package for {0}.").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
225 self.__develPluginFile
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
226 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
227 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
228
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
229 fname = os.path.join(self.pluginDirs["user"], "__init__.py")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
230 if not os.path.exists(fname):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
231 if not os.path.exists(self.pluginDirs["user"]):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
232 os.mkdir(self.pluginDirs["user"], 0o755)
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
233 try:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7400
diff changeset
234 with open(fname, "w"):
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7400
diff changeset
235 pass
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
236 except OSError:
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
237 del self.pluginDirs["user"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
239 if not os.path.exists(self.pluginDirs["global"]):
7967
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
240 try:
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
241 # create the global plugins directory
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
242 os.mkdir(self.pluginDirs["global"], 0o755)
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
243 fname = os.path.join(self.pluginDirs["global"], "__init__.py")
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
244 with open(fname, "w", encoding="utf-8") as f:
10372
1444b4bee64b Fixed some code style issue related to implicitly and explicitly concatenated strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10314
diff changeset
245 f.write("# -*- coding: utf-8 -*-\n")
7967
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
246 f.write("\n")
10372
1444b4bee64b Fixed some code style issue related to implicitly and explicitly concatenated strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10314
diff changeset
247 f.write('"""\n')
1444b4bee64b Fixed some code style issue related to implicitly and explicitly concatenated strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10314
diff changeset
248 f.write("Package containing the global plugins.\n")
1444b4bee64b Fixed some code style issue related to implicitly and explicitly concatenated strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10314
diff changeset
249 f.write('"""\n')
7967
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
250 except OSError:
f5da85158db2 PluginManager: changed the code to create a global plugins directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7946
diff changeset
251 del self.pluginDirs["global"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
253 if not os.path.exists(self.pluginDirs["eric7"]):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
254 return (
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
255 False,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
256 self.tr(
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
257 "The internal plugin directory <b>{0}</b> does not exits."
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
258 ).format(self.pluginDirs["eric7"]),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
259 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
260
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 return (True, "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
262
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 def __pluginModulesExist(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 Private method to check, if there are plugins available.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
266
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
267 @return flag indicating the availability of plugins
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
268 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
270 if self.__develPluginFile and not os.path.exists(self.__develPluginFile):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
272
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273 self.__foundCoreModules = self.getPluginModules(self.pluginDirs["eric7"])
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
274 if Preferences.getPluginManager("ActivateExternal"):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
275 if "global" in self.pluginDirs:
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
276 self.__foundGlobalModules = self.getPluginModules(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
277 self.pluginDirs["global"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
278 )
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
279 if "user" in self.pluginDirs:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
280 self.__foundUserModules = self.getPluginModules(self.pluginDirs["user"])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
281
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
282 return (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
283 len(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
284 self.__foundCoreModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
285 + self.__foundGlobalModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
286 + self.__foundUserModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
287 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
288 > 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
289 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
290
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 def getPluginModules(self, pluginPath):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 Public method to get a list of plugin modules.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
294
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
295 @param pluginPath name of the path to search
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
296 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
297 @return list of plugin module names
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
298 @rtype list of str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
300 pluginFiles = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
301 f[:-3] for f in os.listdir(pluginPath) if self.isValidPluginName(f)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
302 ]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 return pluginFiles[:]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 def isValidPluginName(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 """
8444
88b242eba71b Corrected some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8385
diff changeset
307 Public method to check, if a file name is a valid plugin name.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
308
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 Plugin modules must start with "Plugin" and have the extension ".py".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
310
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
311 @param pluginName name of the file to be checked
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
312 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
313 @return flag indicating a valid plugin name
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
314 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 return pluginName.startswith("Plugin") and pluginName.endswith(".py")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
317
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 def __insertPluginsPaths(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 """
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
320 Private method to insert the valid plugin paths into the search path.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 for key in self.__priorityOrder:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 if key in self.pluginDirs:
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
324 if self.pluginDirs[key] not in sys.path:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 sys.path.insert(2, self.pluginDirs[key])
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
326 EricPixmapCache.addSearchPath(self.pluginDirs[key])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
327
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 if self.__develPluginFile:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
329 path = FileSystemUtilities.splitPath(self.__develPluginFile)[0]
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3523
diff changeset
330 if path not in sys.path:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 sys.path.insert(2, path)
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9299
diff changeset
332 EricPixmapCache.addSearchPath(path)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
333
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 def __loadPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 Private method to load the plugins found.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 develPluginName = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 if self.__develPluginFile:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
340 develPluginPath, develPluginName = FileSystemUtilities.splitPath(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
341 self.__develPluginFile
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
342 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 if self.isValidPluginName(develPluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 develPluginName = develPluginName[:-3]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 for pluginName in self.__foundGlobalModules:
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
347 # user and core plug-ins have priority
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
348 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
349 pluginName not in self.__foundUserModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350 and pluginName not in self.__foundCoreModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
351 and pluginName != develPluginName
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
352 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 self.loadPlugin(pluginName, self.pluginDirs["global"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
354
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 for pluginName in self.__foundUserModules:
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
356 # core plug-ins have priority
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
357 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
358 pluginName not in self.__foundCoreModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359 and pluginName != develPluginName
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
360 ):
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
361 self.loadPlugin(pluginName, self.pluginDirs["user"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
362
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
363 for pluginName in self.__foundCoreModules:
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
364 # plug-in under development has priority
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 if pluginName != develPluginName:
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
366 self.loadPlugin(pluginName, self.pluginDirs["eric7"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
367
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 if develPluginName:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 self.loadPlugin(develPluginName, develPluginPath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 self.__develPluginName = develPluginName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
371
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
372 def loadDocumentationSetPlugins(self):
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
373 """
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
374 Public method to load just the documentation sets plugins.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
375
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
376 @exception PluginModulesError raised to indicate the absence of
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
377 plug-in modules
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
378 """
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
379 if not self.__pluginModulesExist():
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
380 raise PluginModulesError
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
381
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
382 self.__insertPluginsPaths()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
383
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
384 for pluginName in self.__foundGlobalModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
385 # user and core plug-ins have priority
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
386 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
387 pluginName not in self.__foundUserModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
388 and pluginName not in self.__foundCoreModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
389 and pluginName.startswith("PluginDocumentationSets")
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
390 ):
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
391 self.loadPlugin(pluginName, self.pluginDirs["global"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
392
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
393 for pluginName in self.__foundUserModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
394 # core plug-ins have priority
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
395 if pluginName not in self.__foundCoreModules and pluginName.startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
396 "PluginDocumentationSets"
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
397 ):
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
398 self.loadPlugin(pluginName, self.pluginDirs["user"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
399
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
400 for pluginName in self.__foundCoreModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
401 # plug-in under development has priority
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
402 if pluginName.startswith("PluginDocumentationSets"):
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
403 self.loadPlugin(pluginName, self.pluginDirs["eric7"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
404
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
405 def loadPlugin(self, name, directory, reload_=False, install=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 Public method to load a plugin module.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
408
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 Initially all modules are inactive. Modules that are requested on
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 demand are sorted out and are added to the on demand list. Some
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 basic validity checks are performed as well. Modules failing these
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 checks are added to the failed modules list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
413
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
414 @param name name of the module to be loaded
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
415 @type str
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
416 @param directory name of the plugin directory
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
417 @type str
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
418 @param reload_ flag indicating to reload the module
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
419 @type bool
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
420 @param install flag indicating a load operation as part of an
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
421 installation process
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
422 @type bool
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
423 @exception PluginLoadError raised to indicate an issue loading
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
424 the plug-in
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 try:
415
59a0f9e90768 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
427 fname = "{0}.py".format(os.path.join(directory, name))
7400
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
428 spec = importlib.util.spec_from_file_location(name, fname)
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
429 module = importlib.util.module_from_spec(spec)
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
430 sys.modules[module.__name__] = module
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
431 spec.loader.exec_module(module)
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
432 if not hasPluginHeaderEntry(module, "autoactivate"):
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
433 module.error = self.tr(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
434 "Module is missing the 'autoactivate' attribute."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
435 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 self.__failedModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 raise PluginLoadError(name)
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
438 if getPluginHeaderEntry(module, "autoactivate", False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 self.__inactiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 else:
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
441 if not hasPluginHeaderEntry(
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
442 module, "pluginType"
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
443 ) or not hasPluginHeaderEntry(module, "pluginTypename"):
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
444 module.error = self.tr(
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
445 "Module is missing the 'pluginType' "
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
446 "and/or 'pluginTypename' attributes."
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
447 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 self.__failedModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 raise PluginLoadError(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 self.__onDemandInactiveModules[name] = module
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
452 module.eric7PluginModuleName = name
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
453 module.eric7PluginModuleFilename = fname
8989
25cd4c5f1f19 Added code to check and install all of the plugin dependencies (e.g. after upgrading a virtual environment to a new Python version).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
454 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
455 install or Preferences.getPluginManager("AutoInstallDependencies")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
456 ) and hasattr(module, "installDependencies"):
8292
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
457 # ask the module to install its dependencies
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
458 module.installDependencies(self.pipInstall)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 self.__modulesCount += 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 if reload_:
7400
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
461 importlib.reload(module)
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
462 self.initOnDemandPlugin(name)
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
463 with contextlib.suppress(KeyError, AttributeError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
464 pluginObject = self.__onDemandInactivePlugins[name]
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
465 pluginObject.initToolbar(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
466 self.__ui, ericApp().getObject("ToolbarManager")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
467 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 except PluginLoadError:
3520
bfcefbb1633c Implemented the Python2 compatibility check for plug-ins in the plug-in manager. The flag is named 'python2Compatible'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
469 print("Error loading plug-in module:", name)
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
470 except Exception as err:
7400
e5d62581d002 Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
471 module = types.ModuleType(name)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
472 module.error = self.tr("Module failed to load. Error: {0}").format(str(err))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 self.__failedModules[name] = module
3520
bfcefbb1633c Implemented the Python2 compatibility check for plug-ins in the plug-in manager. The flag is named 'python2Compatible'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
474 print("Error loading plug-in module:", name)
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
475 print(str(err))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
476
2889
3737e9f17f44 Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
477 def unloadPlugin(self, name):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 Public method to unload a plugin module.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
480
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
481 @param name name of the module to be unloaded
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
482 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
483 @return flag indicating success
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
484 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 """
2889
3737e9f17f44 Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
486 if name in self.__onDemandActiveModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 # cannot unload an ondemand plugin, that is in use
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
489
2889
3737e9f17f44 Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
490 if name in self.__activeModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 self.deactivatePlugin(name)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
492
2889
3737e9f17f44 Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
493 if name in self.__inactiveModules:
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
494 with contextlib.suppress(KeyError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
495 pluginObject = self.__inactivePlugins[name]
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
496 with contextlib.suppress(AttributeError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
497 pluginObject.prepareUnload()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498 del self.__inactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 del self.__inactiveModules[name]
2889
3737e9f17f44 Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
500 elif name in self.__onDemandInactiveModules:
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
501 with contextlib.suppress(KeyError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
502 pluginObject = self.__onDemandInactivePlugins[name]
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
503 with contextlib.suppress(AttributeError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
504 pluginObject.prepareUnload()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 del self.__onDemandInactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 del self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 elif name in self.__failedModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 del self.__failedModules[name]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
509
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 self.__modulesCount -= 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
512
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
513 def removePluginFromSysModules(self, pluginName, package, internalPackages):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
515 Public method to remove a plugin and all related modules from
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
516 sys.modules.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
517
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
518 @param pluginName name of the plugin module
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
519 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
520 @param package name of the plugin package
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
521 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
522 @param internalPackages list of intenal packages
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
523 @type list of str
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
524 @return flag indicating the plugin module was found in sys.modules
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
525 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 packages = [package] + internalPackages
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 found = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 if not package:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 package = "__None__"
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
531 for moduleName in list(sys.modules):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
532 if moduleName == pluginName or moduleName.split(".")[0] in packages:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
533 found = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
534 del sys.modules[moduleName]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535 return found
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
536
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 def initOnDemandPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 Public method to create plugin objects for all on demand plugins.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
540
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
541 Note: The plugins are not activated.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
543 names = sorted(self.__onDemandInactiveModules)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 for name in names:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545 self.initOnDemandPlugin(name)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
546
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 def initOnDemandPlugin(self, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 Public method to create a plugin object for the named on demand plugin.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
550
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
551 Note: The plug-in is not activated.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
552
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
553 @param name name of the plug-in
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
554 @type str
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
555 @exception PluginActivationError raised to indicate an issue during the
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
556 plug-in activation
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 module = self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 except KeyError:
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
562 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
563
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 if not self.__canActivatePlugin(module):
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
565 raise PluginActivationError(module.eric7PluginModuleName)
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
566 version = getPluginHeaderEntry(module, "version", "0.0.0")
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
567 className = getPluginHeaderEntry(module, "className", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 if name not in self.__onDemandInactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 pluginObject = pluginClass(self.__ui)
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
572 pluginObject.eric7PluginModule = module
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
573 pluginObject.eric7PluginName = className
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
574 pluginObject.eric7PluginVersion = version
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
575 self.__onDemandInactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576 except PluginActivationError:
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
577 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
578
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
579 def initPluginToolbars(self, toolbarManager):
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
580 """
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
581 Public method to initialize plug-in toolbars.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
582
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
583 @param toolbarManager reference to the toolbar manager object
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
584 @type EricToolBarManager
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
585 """
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
586 self.initOnDemandPlugins()
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
587 for pluginObject in self.__onDemandInactivePlugins.values():
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
588 with contextlib.suppress(AttributeError):
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
589 pluginObject.initToolbar(self.__ui, toolbarManager)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
590
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 def activatePlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
593 Public method to activate all plugins having the "autoactivate"
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
594 attribute set to True.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
596 savedInactiveList = Preferences.getSettings().value(self.__inactivePluginsKey)
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
597 inactiveList = self.__disabledPlugins[:]
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
598 if savedInactiveList is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
599 inactiveList += [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
600 p for p in savedInactiveList if p not in self.__disabledPlugins
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
601 ]
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
602 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
603 self.__develPluginName is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
604 and self.__develPluginName in inactiveList
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
605 ):
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
606 inactiveList.remove(self.__develPluginName)
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
607 names = sorted(self.__inactiveModules)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608 for name in names:
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
609 if name not in inactiveList:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 self.activatePlugin(name)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
611 self.allPlugginsActivated.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
612
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
613 def activatePlugin(self, name, onDemand=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
615 Public method to activate a plugin.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
616
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617 @param name name of the module to be activated
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
618 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
619 @param onDemand flag indicating activation of an
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
620 on demand plugin
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
621 @type bool
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
622 @return reference to the initialized plugin object and an error string
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
623 @rtype tuple of (QObject, str)
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
624 @exception PluginActivationError raised to indicate an issue during the
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
625 plug-in activation
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
627 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
628 try:
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
629 module = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
630 self.__onDemandInactiveModules[name]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
631 if onDemand
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
632 else self.__inactiveModules[name]
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
633 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 except KeyError:
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
635 return None, f"no such plugin module: {name}"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
636
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 if not self.__canActivatePlugin(module):
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
638 raise PluginActivationError(module.eric7PluginModuleName)
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
639 version = getPluginHeaderEntry(module, "version", "0.0.0")
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
640 className = getPluginHeaderEntry(module, "className", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 if onDemand and name in self.__onDemandInactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 pluginObject = self.__onDemandInactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 elif not onDemand and name in self.__inactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 pluginObject = self.__inactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648 pluginObject = pluginClass(self.__ui)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
649 self.pluginAboutToBeActivated.emit(name, pluginObject)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 obj, ok = pluginObject.activate()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 except TypeError:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
653 module.error = self.tr("Incompatible plugin activation method.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 obj = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 ok = True
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
656 except Exception as err:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
657 module.error = str(err)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 obj = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 ok = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 if not ok:
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
661 return None, module.error
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
662
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
663 self.pluginActivated.emit(name, pluginObject)
8314
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
664 pluginObject.eric7PluginModule = module
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
665 pluginObject.eric7PluginName = className
e3642a6a1e71 Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
666 pluginObject.eric7PluginVersion = version
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
667
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 self.__onDemandInactiveModules.pop(name)
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
670 with contextlib.suppress(KeyError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 self.__onDemandInactivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 self.__onDemandActivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 self.__onDemandActiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 self.__inactiveModules.pop(name)
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
676 with contextlib.suppress(KeyError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677 self.__inactivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 self.__activePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
679 self.__activeModules[name] = module
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
680 return obj, ""
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
681 except PluginActivationError as err:
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
682 return None, str(err)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
683
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
684 def __canActivatePlugin(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
685 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
686 Private method to check, if a plugin can be activated.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
687
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 @param module reference to the module to be activated
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
689 @type Module
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 @return flag indicating, if the module satisfies all requirements
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
691 for being activated
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
692 @rtype bool
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
693 @exception PluginModuleFormatError raised to indicate an invalid
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
694 plug-in module format
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
695 @exception PluginClassFormatError raised to indicate an invalid
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
696 plug-in class format
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 try:
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
699 if not hasPluginHeaderEntry(module, "version"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
700 raise PluginModuleFormatError(module.eric7PluginModuleName, "version")
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
701 if not hasPluginHeaderEntry(module, "className"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
702 raise PluginModuleFormatError(module.eric7PluginModuleName, "className")
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
703 className = getPluginHeaderEntry(module, "className", "")
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
704 if not className or not hasattr(module, className):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
705 raise PluginModuleFormatError(module.eric7PluginModuleName, className)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 if not hasattr(pluginClass, "__init__"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
708 raise PluginClassFormatError(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
709 module.eric7PluginModuleName, className, "__init__"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
710 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 if not hasattr(pluginClass, "activate"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
712 raise PluginClassFormatError(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
713 module.eric7PluginModuleName, className, "activate"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 if not hasattr(pluginClass, "deactivate"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
716 raise PluginClassFormatError(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
717 module.eric7PluginModuleName, className, "deactivate"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
718 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 return True
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
720 except PluginModuleFormatError as e:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
721 print(repr(e))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 return False
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
723 except PluginClassFormatError as e:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
724 print(repr(e))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
726
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
727 def deactivatePlugin(self, name, onDemand=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 Public method to deactivate a plugin.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
730
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 @param name name of the module to be deactivated
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
732 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
733 @param onDemand flag indicating deactivation of an
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
734 on demand plugin
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
735 @type bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 try:
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
738 module = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
739 self.__onDemandActiveModules[name]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
740 if onDemand
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
741 else self.__activeModules[name]
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
742 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
745
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
746 if self.__canDeactivatePlugin(module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748 if onDemand and name in self.__onDemandActivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749 pluginObject = self.__onDemandActivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 elif not onDemand and name in self.__activePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 pluginObject = self.__activePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
752 if pluginObject:
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
753 self.pluginAboutToBeDeactivated.emit(name, pluginObject)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 pluginObject.deactivate()
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
755 self.pluginDeactivated.emit(name, pluginObject)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
756
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 self.__onDemandActiveModules.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759 self.__onDemandActivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 self.__onDemandInactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
761 self.__onDemandInactiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 self.__activeModules.pop(name)
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
764 with contextlib.suppress(KeyError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765 self.__activePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
766 self.__inactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
767 self.__inactiveModules[name] = module
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
768
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 def __canDeactivatePlugin(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771 Private method to check, if a plugin can be deactivated.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
772
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 @param module reference to the module to be deactivated
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
774 @type Module
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775 @return flag indicating, if the module satisfies all requirements
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
776 for being deactivated
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
777 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 """
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
779 return getPluginHeaderEntry(module, "deactivateable", True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
780
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
781 def getPluginObject(self, type_, typename, maybeActive=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 """
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
783 Public method to activate an on-demand plugin given by type and
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
784 type name.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
785
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
786 @param type_ type of the plugin to be activated
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
787 @type str
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
788 @param typename name of the plugin within the type category
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
789 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
790 @param maybeActive flag indicating, that the plugin may be active
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
791 already
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
792 @type bool
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
793 @return reference to the initialized plugin object and an error string
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
794 @rtype tuple of (QObject, str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
796 for name, module in self.__onDemandInactiveModules.items():
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
797 if (
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
798 getPluginHeaderEntry(module, "pluginType", "") == type_
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
799 and getPluginHeaderEntry(module, "pluginTypename", "") == typename
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
800 ):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
801 return self.activatePlugin(name, onDemand=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
802
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 if maybeActive:
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
804 for name, module in self.__onDemandActiveModules.items():
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
805 if (
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
806 getPluginHeaderEntry(module, "pluginType", "") == type_
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
807 and getPluginHeaderEntry(module, "pluginTypename", "") == typename
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
808 ):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
809 self.deactivatePlugin(name, onDemand=True)
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
810 return self.activatePlugin(name, onDemand=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
811
9299
e40589582f82 Improved the error reporting for plugin activation (specially for view manager plugins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
812 return None, f"no plugin module of type {type_}: {typename}"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
813
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 def getPluginInfos(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 """
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
816 Public method to get infos about all loaded plug-ins.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
817
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
818 @return list of dictionaries with keys "module_name", "plugin_name",
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
819 "version", "auto_activate", "active", "short_desc", "error"
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
820 @rtype list of dict ("module_name": str, "plugin_name": str,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
821 "version": str, "auto_activate": bool, "active": bool,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
822 "short_desc": str, "error": bool)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 infos = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
825
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
826 # 1. active, non-on-demand modules
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
827 for name in self.__activeModules:
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
828 info = self.__getShortInfo(self.__activeModules[name])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
829 info.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
830 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
831 "module_name": name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
832 "auto_activate": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
833 "active": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
834 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
835 )
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
836 infos.append(info)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
837
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
838 # 2. inactive, non-on-demand modules
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
839 for name in self.__inactiveModules:
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
840 info = self.__getShortInfo(self.__inactiveModules[name])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
841 info.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
842 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
843 "module_name": name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
844 "auto_activate": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
845 "active": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
846 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
847 )
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
848 infos.append(info)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
849
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
850 # 3. active, on-demand modules
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
851 for name in self.__onDemandActiveModules:
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
852 info = self.__getShortInfo(self.__onDemandActiveModules[name])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
853 info.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
854 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
855 "module_name": name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
856 "auto_activate": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
857 "active": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
858 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
859 )
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
860 infos.append(info)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
861
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
862 # 4. inactive, non-on-demand modules
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
863 for name in self.__onDemandInactiveModules:
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
864 info = self.__getShortInfo(self.__onDemandInactiveModules[name])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
865 info.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
866 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
867 "module_name": name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
868 "auto_activate": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
869 "active": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
870 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
871 )
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
872 infos.append(info)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
873
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
874 # 5. failed modules
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
875 for name in self.__failedModules:
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
876 info = self.__getShortInfo(self.__failedModules[name])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
877 info.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
878 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
879 "module_name": name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
880 "auto_activate": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
881 "active": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
882 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
883 )
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
884 infos.append(info)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
885
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 return infos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
887
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888 def __getShortInfo(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 Private method to extract the short info from a module.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
891
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
892 @param module module to extract short info from
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
893 @type Module
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
894 @return dictionary containing plug-in data
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
895 @rtype dict ("plugin_name": str, "version": str, "short_desc": str,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
896 "error": bool)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 """
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
898 return {
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
899 "plugin_name": getPluginHeaderEntry(module, "name", ""),
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
900 "version": getPluginHeaderEntry(module, "version", ""),
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
901 "short_desc": getPluginHeaderEntry(module, "shortDescription", ""),
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
902 "error": bool(getPluginHeaderEntry(module, "error", "")),
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
903 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
904
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 def getPluginDetails(self, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907 Public method to get detailed information about a plugin.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
908
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
909 @param name name of the module to get detailed infos about
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
910 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
911 @return details of the plugin as a dictionary
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
912 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
914 details = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
915
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 autoactivate = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
917 active = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
918
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
919 if name in self.__activeModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 module = self.__activeModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 elif name in self.__inactiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922 module = self.__inactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
923 active = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924 elif name in self.__onDemandActiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 module = self.__onDemandActiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 elif name in self.__onDemandInactiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 module = self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930 active = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 elif name in self.__failedModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 module = self.__failedModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
933 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 active = False
5236
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
935 elif "_" in name:
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
936 # try stripping of a postfix
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
937 return self.getPluginDetails(name.rsplit("_", 1)[0])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 # should not happen
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
941
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 details["moduleName"] = name
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
943 details["moduleFileName"] = getPluginHeaderEntry(
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
944 module, "eric7PluginModuleFilename", ""
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
945 )
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
946 details["pluginName"] = getPluginHeaderEntry(module, "name", "")
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
947 details["version"] = getPluginHeaderEntry(module, "version", "")
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
948 details["author"] = getPluginHeaderEntry(module, "author", "")
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
949 details["description"] = getPluginHeaderEntry(module, "longDescription", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 details["autoactivate"] = autoactivate
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
951 details["active"] = active
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
952 details["error"] = getPluginHeaderEntry(module, "error", "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
953
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954 return details
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
955
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
956 def doShutdown(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 Public method called to perform actions upon shutdown of the IDE.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 names = []
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
961 for name in self.__inactiveModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
962 names.append(name)
8637
394377638256 Replaced the direct access to 'Preferences.Prefs.settings' with 'Preferences.getSettings()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8595
diff changeset
963 Preferences.getSettings().setValue(self.__inactivePluginsKey, names)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
964
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
965 self.shutdown.emit()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
966
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 def getPluginDisplayStrings(self, type_):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
969 Public method to get the display strings of all plugins of a specific
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
970 type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
971
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
972 @param type_ type of the plugins
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
973 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
974 @return dictionary with name as key and display string as value
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
975 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977 pluginDict = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
978
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
979 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
980 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
981 self.__onDemandInactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
982 ):
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
983 if (
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
984 getPluginHeaderEntry(module, "pluginType", "") == type_
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
985 and getPluginHeaderEntry(module, "error", "") == ""
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
986 ):
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
987 plugin_name = getPluginHeaderEntry(module, "pluginTypename", "")
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
988 if plugin_name:
10213
0d0683edaf24 Fixed a bug causing the display string defined in a plug-in not been shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10192
diff changeset
989 pluginDict[plugin_name] = getPluginHeaderEntry(
0d0683edaf24 Fixed a bug causing the display string defined in a plug-in not been shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10192
diff changeset
990 module, "displayString", plugin_name
0d0683edaf24 Fixed a bug causing the display string defined in a plug-in not been shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10192
diff changeset
991 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
992
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
993 return pluginDict
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
994
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
995 def getPluginPreviewPixmap(self, type_, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
996 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
997 Public method to get a preview pixmap of a plugin of a specific type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
998
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
999 @param type_ type of the plugin
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1000 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1001 @param name name of the plugin type
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1002 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1003 @return preview pixmap
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1004 @rtype QPixmap
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1005 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1006 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1007 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1008 self.__onDemandInactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1009 ):
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1010 if (
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1011 getPluginHeaderEntry(module, "pluginType", "") == type_
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1012 and getPluginHeaderEntry(module, "pluginTypename", "") == name
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1013 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1014 if hasattr(module, "previewPix"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1015 return module.previewPix()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1016 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1017 return QPixmap()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1018
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1019 return QPixmap()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1020
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1021 def getPluginApiFiles(self, language):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1022 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1023 Public method to get the list of API files installed by a plugin.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1024
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1025 @param language language of the requested API files
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1026 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1027 @return list of API filenames
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1028 @rtype list of str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1029 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1030 apis = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1031
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1032 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1033 self.__activeModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1034 self.__onDemandActiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1035 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1036 if hasattr(module, "apiFiles"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1037 apis.extend(module.apiFiles(language))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1038
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1039 return apis
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1040
5223
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1041 def getPluginQtHelpFiles(self):
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1042 """
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1043 Public method to get the list of QtHelp documentation files provided
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1044 by a plug-in.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1045
5223
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1046 @return dictionary with documentation type as key and list of files
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1047 as value
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1048 @rtype dict (key: str, value: list of str)
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1049 """
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1050 helpFiles = {}
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1051 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1052 self.__activeModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1053 self.__onDemandActiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1054 ):
5223
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1055 if hasattr(module, "helpFiles"):
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1056 helpFiles.update(module.helpFiles())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1057
5223
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
1058 return helpFiles
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1059
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1060 def getPluginExeDisplayData(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 Public method to get data to display information about a plugins
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1063 external tool.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1064
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1065 @return list of dictionaries containing the data. Each dictionary must
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1066 either contain data for the determination or the data to be
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1067 displayed.<br />
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068 A dictionary of the first form must have the following entries:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1069 <ul>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1070 <li>programEntry - indicator for this dictionary form
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1071 (boolean), always True</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072 <li>header - string to be diplayed as a header (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073 <li>exe - the executable (string)</li>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1074 <li>versionCommand - commandline parameter for the exe
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1075 (string)</li>
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1076 <li>versionStartsWith - indicator for the output line
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1077 containing the version (string)</li>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1078 <li>versionPosition - number of element containing the
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1079 version (integer)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1080 <li>version - version to be used as default (string)</li>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1081 <li>versionCleanup - tuple of two integers giving string
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1082 positions start and stop for the version string
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1083 (tuple of integers)</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1084 </ul>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1085 A dictionary of the second form must have the following entries:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1086 <ul>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1087 <li>programEntry - indicator for this dictionary form
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1088 (boolean), always False</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1089 <li>header - string to be diplayed as a header (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1090 <li>text - entry text to be shown (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1091 <li>version - version text to be shown (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1092 </ul>
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1093 @rtype list of dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1094 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1095 infos = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1096
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1097 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1098 self.__activeModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1099 self.__inactiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1100 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1101 self.__onDemandInactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1102 ):
438
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1103 if hasattr(module, "exeDisplayDataList"):
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1104 infos.extend(module.exeDisplayDataList())
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1105 elif hasattr(module, "exeDisplayData"):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1106 infos.append(module.exeDisplayData())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1107
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1108 return infos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1109
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1110 def getPluginConfigData(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1112 Public method to get the config data of all active, non on-demand
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1113 plugins used by the configuration dialog.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1114
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1115 Plugins supporting this functionality must provide the plugin module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1116 function 'getConfigData' returning a dictionary with unique keys
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1117 of lists with the following list contents:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 <dl>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1119 <dt>display string</dt>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1120 <dd>string shown in the selection area of the configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1121 This should be a localized string</dd>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1122 <dt>pixmap name</dt>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1123 <dd>filename of the pixmap to be shown next to the display
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1124 string</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1125 <dt>page creation function</dt>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1126 <dd>plugin module function to be called to create the configuration
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1127 page. The page must be subclasses from
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1128 Preferences.ConfigurationPages.ConfigurationPageBase and must
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1129 implement a method called 'save' to save the settings. A parent
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1130 entry will be created in the selection list, if this value is
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1131 None.</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1132 <dt>parent key</dt>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1133 <dd>dictionary key of the parent entry or None, if this defines a
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1134 toplevel entry.</dd>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1135 <dt>reference to configuration page</dt>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1136 <dd>This will be used by the configuration dialog and must always
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1137 be None</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1138 </dl>
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1139
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
1140 @return plug-in configuration data
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1141 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1142 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1143 configData = {}
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1144 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1145 self.__activeModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1146 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1147 self.__onDemandInactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1148 ):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1149 if hasattr(module, "getConfigData"):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1150 configData.update(module.getConfigData())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1151 return configData
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1152
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1153 def isPluginLoaded(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1154 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1155 Public method to check, if a certain plugin is loaded.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1156
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1157 @param pluginName name of the plugin to check for
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1158 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1159 @return flag indicating, if the plugin is loaded
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1160 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1161 """
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1162 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1163 pluginName in self.__activeModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1164 or pluginName in self.__inactiveModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1165 or pluginName in self.__onDemandActiveModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1166 or pluginName in self.__onDemandInactiveModules
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1167 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1168
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1169 def isPluginActive(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1170 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1171 Public method to check, if a certain plugin is active.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1172
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1173 @param pluginName name of the plugin to check for
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1174 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1175 @return flag indicating, if the plugin is active
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1176 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1177 """
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1178 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1179 pluginName in self.__activeModules
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1180 or pluginName in self.__onDemandActiveModules
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1181 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1182
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1183 ###########################################################################
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1184 ## Specialized plug-in module handling methods below
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1185 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1186
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1187 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1188 ## VCS related methods below
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1189 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1190
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1191 def getVcsSystemIndicators(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1192 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1193 Public method to get the Vcs System indicators.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1194
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1195 Plugins supporting this functionality must support the module function
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1196 getVcsSystemIndicator returning a dictionary with indicator as key and
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1197 a tuple with the vcs name (string) and vcs display string (string).
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1198
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1199 @return dictionary with indicator as key and a list of tuples as
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1200 values. Each tuple contains the vcs name (str) and vcs display
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1201 string (str).
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1202 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1203 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1204 vcsDict = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1205
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1206 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1207 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1208 self.__onDemandInactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1209 ):
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1210 if getPluginHeaderEntry(
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1211 module, "pluginType", ""
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1212 ) == "version_control" and hasattr(module, "getVcsSystemIndicator"):
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1213 res = module.getVcsSystemIndicator()
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1214 for indicator, vcsData in res.items():
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1215 if indicator in vcsDict:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1216 vcsDict[indicator].append(vcsData)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1217 else:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1218 vcsDict[indicator] = [vcsData]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1219
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1220 return vcsDict
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1221
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1222 def deactivateVcsPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1223 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1224 Public method to deactivated all activated VCS plugins.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1225 """
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1226 for name, module in list(self.__onDemandActiveModules.items()):
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1227 if getPluginHeaderEntry(module, "pluginType", "") == "version_control":
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1228 self.deactivatePlugin(name, True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1229
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1230 ########################################################################
4630
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1231 ## Methods for the creation of the plug-ins download directory
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1232 ########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1233
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1234 def __checkPluginsDownloadDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1235 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1236 Private slot to check for the existence of the plugins download
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1237 directory.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1238 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1239 downloadDir = Preferences.getPluginManager("DownloadPath")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1240 if not downloadDir:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1241 downloadDir = self.__defaultDownloadDir
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1242
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1243 if not os.path.exists(downloadDir):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1244 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1245 os.mkdir(downloadDir, 0o755)
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
1246 except OSError:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1247 # try again with (possibly) new default
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1248 downloadDir = self.__defaultDownloadDir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1249 if not os.path.exists(downloadDir):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1250 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1251 os.mkdir(downloadDir, 0o755)
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
1252 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
1253 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
1254 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1255 self.tr("Plugin Manager Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1256 self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1257 """<p>The plugin download directory"""
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1258 """ <b>{0}</b> could not be created. Please"""
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1259 """ configure it via the configuration"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1260 """ dialog.</p><p>Reason: {1}</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1261 ).format(downloadDir, str(err)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1262 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1263 downloadDir = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1264
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1265 Preferences.setPluginManager("DownloadPath", downloadDir)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1266
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1267 def preferencesChanged(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1268 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1269 Public slot to react to changes in configuration.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1270 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1271 self.__checkPluginsDownloadDirectory()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1272
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1273 ########################################################################
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1274 ## Methods for automatic plug-in update check below
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1275 ########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1276
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1277 def checkPluginUpdatesAvailable(self):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1278 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1279 Public method to check the availability of updates of plug-ins.
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1280 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1281 period = Preferences.getPluginManager("UpdatesCheckInterval")
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1282 # 0 = off
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1283 # 1 = daily
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1284 # 2 = weekly
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1285 # 3 = monthly
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1286 # 4 = always
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1287
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1288 if period == 0 or (self.__ui is not None and not self.__ui.isOnline()):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1289 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1290
9186
0c28a1670e06 Fixed a few issues introduced by the pathlib change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9152
diff changeset
1291 elif period in [1, 2, 3] and pathlib.Path(self.pluginRepositoryFile).exists():
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1292 lastModified = datetime.datetime.fromtimestamp(
10192
f457742dd3d6 Modified the datetime.datetime methods to include the 'tz' argument.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10124
diff changeset
1293 pathlib.Path(self.pluginRepositoryFile).stat().st_mtime,
f457742dd3d6 Modified the datetime.datetime methods to include the 'tz' argument.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10124
diff changeset
1294 tz=datetime.timezone.utc,
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1295 )
10192
f457742dd3d6 Modified the datetime.datetime methods to include the 'tz' argument.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10124
diff changeset
1296 now = datetime.datetime.now(tz=datetime.timezone.utc)
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1297 delta = now - lastModified
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1298 if (
10124
834c76d6ab4d Corrected the update availability checks (UserInterface and PluginManager) for period 'daily'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1299 (period == 1 and delta.days < 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1300 or (period == 2 and delta.days < 7)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1301 or (period == 3 and delta.days < 30)
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1302 ):
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1303 # daily, weekly, monthly
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9134
diff changeset
1304 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1305
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1306 self.downLoadRepositoryFile()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1307
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1308 def downLoadRepositoryFile(self, url=None):
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1309 """
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1310 Public method to download the plugin repository file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1311
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1312 @param url URL to get the plugin repository file from
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1313 (defaults to None)
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1314 @type QUrl or str (optional)
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1315 """
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1316 self.__updateAvailable = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1317
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1318 if url is None:
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1319 url = Preferences.getUI("PluginRepositoryUrl7")
9982
5b91f7baffd0 Plugin Repository, Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
1320 if Preferences.getPluginManager("ForceHttpPluginDownload"):
5b91f7baffd0 Plugin Repository, Web Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
1321 url = url.replace("https://", "http://")
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1322 request = QNetworkRequest(QUrl(url))
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7967
diff changeset
1323 request.setAttribute(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7967
diff changeset
1324 QNetworkRequest.Attribute.CacheLoadControlAttribute,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1325 QNetworkRequest.CacheLoadControl.AlwaysNetwork,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1326 )
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1327 reply = self.__networkManager.get(request)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1328 reply.finished.connect(lambda: self.__downloadRepositoryFileDone(reply))
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1329 self.__replies.append(reply)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1330
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1331 def __downloadRepositoryFileDone(self, reply):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1332 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1333 Private method called after the repository file was downloaded.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1334
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1335 @param reply reference to the reply object of the download
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1336 @type QNetworkReply
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1337 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1338 if reply in self.__replies:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1339 self.__replies.remove(reply)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1340
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7967
diff changeset
1341 if reply.error() != QNetworkReply.NetworkError.NoError:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
1342 EricMessageBox.warning(
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1343 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1344 self.tr("Error downloading file"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1345 self.tr(
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1346 """<p>Could not download the requested file"""
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1347 """ from {0}.</p><p>Error: {1}</p>"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1348 ).format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1349 Preferences.getUI("PluginRepositoryUrl7"), reply.errorString()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1350 ),
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1351 )
4626
c891c7ad6b60 Added some missing deleteLater() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4566
diff changeset
1352 reply.deleteLater()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1353 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1354
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1355 ioDevice = QFile(self.pluginRepositoryFile + ".tmp")
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7967
diff changeset
1356 ioDevice.open(QIODevice.OpenModeFlag.WriteOnly)
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1357 ioDevice.write(reply.readAll())
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1358 ioDevice.close()
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1359 if QFile.exists(self.pluginRepositoryFile):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1360 QFile.remove(self.pluginRepositoryFile)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1361 ioDevice.rename(self.pluginRepositoryFile)
4626
c891c7ad6b60 Added some missing deleteLater() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4566
diff changeset
1362 reply.deleteLater()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1363
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1364 if os.path.exists(self.pluginRepositoryFile):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1365 f = QFile(self.pluginRepositoryFile)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7967
diff changeset
1366 if f.open(QIODevice.OpenModeFlag.ReadOnly):
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1367 # save current URL
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
1368 url = Preferences.getUI("PluginRepositoryUrl7")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1369
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1370 # read the repository file
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1371 reader = PluginRepositoryReader(f, self.checkPluginEntry)
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1372 reader.readXML()
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8314
diff changeset
1373 if url != Preferences.getUI("PluginRepositoryUrl7"):
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1374 # redo if it is a redirect
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1375 self.checkPluginUpdatesAvailable()
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1376 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1377
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1378 if self.__updateAvailable:
9134
8caa0936e258 Fixed a bug in the Plugin Manager causing an exception when used in the standalone plugin repository window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9031
diff changeset
1379 self.__ui and self.__ui.activatePluginRepositoryViewer()
9031
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1380 else:
8c9013b363bc Fixed an issue related to updating the plug-in repository file and the respective view.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9016
diff changeset
1381 self.pluginRepositoryFileDownloaded.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1382
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1383 def checkPluginEntry(
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1384 self,
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1385 name, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1386 short, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1387 description, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1388 url,
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1389 author, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1390 version,
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1391 filename,
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10061
diff changeset
1392 status, # noqa: U100
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1393 category, # noqa: U100
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1394 ):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1395 """
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1396 Public method to check a plug-in's data for an update.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1397
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1398 @param name data for the name field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1399 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1400 @param short data for the short field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1401 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1402 @param description data for the description field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1403 @type list of str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1404 @param url data for the url field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1405 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1406 @param author data for the author field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1407 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1408 @param version data for the version field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1409 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1410 @param filename data for the filename field
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1411 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1412 @param status status of the plugin (one of stable, unstable, unknown)
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1413 @type str
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1414 @param category category designation of the plugin
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1415 @type str
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1416 """
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1417 # ignore hidden plug-ins
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1418 pluginName = os.path.splitext(url.rsplit("/", 1)[1])[0]
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1419 if pluginName in Preferences.getPluginManager("HiddenPlugins"):
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1420 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1421
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1422 archive = os.path.join(Preferences.getPluginManager("DownloadPath"), filename)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1423
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1424 # Check against installed/loaded plug-ins
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1425 pluginDetails = self.getPluginDetails(pluginName)
6611
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1426 if pluginDetails is None:
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1427 if not Preferences.getPluginManager("CheckInstalledOnly"):
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1428 self.__updateAvailable = True
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1429 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1430
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1431 versionTuple = Globals.versionToTuple(version)[:3]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1432 pluginVersionTuple = Globals.versionToTuple(pluginDetails["version"])[:3]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1433
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1434 if pluginVersionTuple < versionTuple:
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1435 self.__updateAvailable = True
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1436 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1437
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1438 if not Preferences.getPluginManager("CheckInstalledOnly"):
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1439 # Check against downloaded plugin archives
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1440 # 1. Check, if the archive file exists
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1441 if not os.path.exists(archive):
6611
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1442 if pluginDetails["moduleName"] != pluginName:
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1443 self.__updateAvailable = True
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1444 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1445
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1446 # 2. Check, if the archive is a valid zip file
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1447 if not zipfile.is_zipfile(archive):
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1448 self.__updateAvailable = True
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1449 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1450
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1451 # 3. Check the version of the archive file
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1452 zipFile = zipfile.ZipFile(archive, "r")
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1453 try:
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1454 aversion = zipFile.read("VERSION").decode("utf-8")
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1455 except KeyError:
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1456 aversion = "0.0.0"
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1457 zipFile.close()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1458
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1459 aversionTuple = Globals.versionToTuple(aversion)[:3]
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1460 if aversionTuple != versionTuple:
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1461 self.__updateAvailable = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1462
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1463 def __sslErrors(self, reply, errors):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1464 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1465 Private slot to handle SSL errors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1466
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1467 @param reply reference to the reply object
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1468 @type QNetworkReply
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1469 @param errors list of SSL errors
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1470 @type list of QSslError
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1471 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1472 ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0]
8354
12ebd3934fef Renamed 'E5Utilities' to 'EricUtilities' and 'E5Network' to 'EricNetwork'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
1473 if ignored == EricSslErrorState.NOT_IGNORED:
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1474 self.__downloadCancelled = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1475
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1476 ########################################################################
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1477 ## Methods to clear private data of plug-ins below
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1478 ########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1479
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1480 def clearPluginsPrivateData(self, type_):
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1481 """
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1482 Public method to clear the private data of plug-ins of a specified
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1483 type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1484
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1485 Plugins supporting this functionality must support the module function
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1486 clearPrivateData() and have the module level attribute pluginType.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1487
10314
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1488 @param type_ type of the plugin to clear private data for
1f7d52f024b1 Plugin Repository Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10213
diff changeset
1489 @type str
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1490 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1491 for module in itertools.chain(
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1492 self.__onDemandActiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1493 self.__onDemandInactiveModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1494 self.__activeModules.values(),
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10372
diff changeset
1495 self.__inactiveModules.values(),
7255
d595f6f9cbf8 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1496 ):
10061
8bdad5699288 Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9982
diff changeset
1497 if getPluginHeaderEntry(module, "pluginType", "") == type_ and hasattr(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1498 module, "clearPrivateData"
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1499 ):
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
1500 module.clearPrivateData()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1501
8292
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1502 ########################################################################
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1503 ## Methods to install a plug-in module dependency via pip
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1504 ########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1505
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1506 def pipInstall(self, packages):
8292
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1507 """
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1508 Public method to install the given package via pip.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1509
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1510 @param packages list of packages to install
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1511 @type list of str
8292
54b48d756b0a Started preparing the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8268
diff changeset
1512 """
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1513 try:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
1514 pip = ericApp().getObject("Pip")
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1515 except KeyError:
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1516 # Installation is performed via the plug-in installation script.
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
1517 from eric7.PipInterface.Pip import Pip # __IGNORE_WARNING_I101__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1518
8293
cad568796748 Prepared the plugin manager to install plug-in dependecies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8292
diff changeset
1519 pip = Pip(self)
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
1520 pip.installPackages(packages, interpreter=PythonUtilities.getPythonExecutable())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1521
4566
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1522
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1523 #
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1524 # eflag: noqa = M801

eric ide

mercurial