PluginVulture.py

Mon, 24 Oct 2022 17:25:12 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Oct 2022 17:25:12 +0200
branch
eric7
changeset 95
1c4dadf3ce89
parent 90
6393ee6e7993
child 97
6ec0844dafe7
permissions
-rw-r--r--

Adapted the import statements to the new structure.

1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
85
6a17f25cefa1 Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
3 # Copyright (c) 2015 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
6
76c0f3ed7ac5 Finished implementing the whitelist edit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
7 Module implementing the vulture plug-in.
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
10 import os
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
12 from PyQt6.QtCore import pyqtSignal, QObject, QTranslator
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13
95
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
14 from eric7 import Preferences
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15
95
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
16 from eric7.EricGui.EricAction import EricAction
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
17 from eric7.EricWidgets.EricApplication import ericApp
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
18
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
19 from eric7.Utilities import determinePythonVersion
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 # Start-Of-Header
23
416ea417de46 Fixed a bug deactivating the plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
22 name = "Unused Code Checker Plug-in"
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 autoactivate = True
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 deactivateable = True
95
1c4dadf3ce89 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 90
diff changeset
26 version = "10.1.0"
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 className = "VulturePlugin"
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 packageName = "VultureChecker"
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
29 shortDescription = "Plug-in to detect unused code using the 'vulture' library"
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
30 longDescription = """Plug-in to detect unused code using the 'vulture' library."""
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 needsRestart = False
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 pyqtApi = 2
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 # End-Of-Header
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 error = ""
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
36
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38 class VulturePlugin(QObject):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 Class documentation goes here.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
41
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
42 @signal analysisDone(str, dict) emitted when the code analysis has
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
43 been completed for a file
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 @signal error(str, str) emitted in case of an error
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 @signal batchFinished() emitted when a style check batch is done
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46 """
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
47
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
48 analysisDone = pyqtSignal(str, dict)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 batchFinished = pyqtSignal()
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
50 error = pyqtSignal(str, str)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
51
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52 def __init__(self, ui):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
54 Constructor
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
55
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
56 @param ui reference to the user interface object
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
57 @type UserInterface
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
58 """
69
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
59 super().__init__(ui)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
60 self.__ui = ui
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
61 self.__initialize()
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
62
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
63 self.backgroundService = ericApp().getObject("BackgroundService")
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
64
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 path = os.path.join(os.path.dirname(__file__), packageName)
62
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
66 self.backgroundService.serviceConnect(
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
67 "vulture",
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
68 "Python3",
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
69 path,
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
70 "VultureCheckerService",
62
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
71 self.vultureCheckDone,
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
72 onErrorCallback=self.serviceErrorPy3,
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
73 onBatchDone=self.batchJobDone,
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
74 )
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
75
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 self.queuedBatches = []
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 self.batchesFinished = True
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
78
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 self.__translator = None
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 self.__loadTranslator()
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
81
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 def __serviceError(self, fn, msg):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 Private slot handling service errors.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
85
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86 @param fn file name
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 @param msg message text
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 self.error.emit(fn, msg)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
92
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 def serviceErrorPy3(self, fx, lang, fn, msg):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
95 Public slot handling service errors for Python 3.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
96
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
97 @param fx service name
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 @param lang language
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 @param fn file name
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 @param msg message text
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105 """
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
106 if fx in ["vulture", "batch_vulture"] and lang == "Python3":
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
107 if fx == "vulture":
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
108 self.__serviceError(fn, msg)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 else:
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110 self.__serviceError(self.tr("Python 3 batch job"), msg)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
111 self.batchJobDone(fx, lang)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
112
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 def batchJobDone(self, fx, lang):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
114 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 Public slot handling the completion of a batch job.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
116
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117 @param fx service name
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 @param lang language
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 """
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
122 if fx in ["vulture", "batch_vulture"]:
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 if lang in self.queuedBatches:
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124 self.queuedBatches.remove(lang)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 # prevent sending the signal multiple times
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126 if len(self.queuedBatches) == 0 and not self.batchesFinished:
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 self.batchFinished.emit()
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 self.batchesFinished = True
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
129
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
130 def vultureCheckDone(self, filename, result):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
131 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
132 Public slot to dispatch the result.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
133
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
134 @param filename name of the file the results belong to
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
135 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
136 @param result result dictionary
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
137 @type dict
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
138 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
139 self.analysisDone.emit(filename, result)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
140
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 def __initialize(self):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 Private slot to (re)initialize the plug-in.
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 self.__projectAct = None
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 self.__projectVultureCheckerDialog = None
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
148 def vultureCheck(self, lang, filename, source):
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150 Public method to prepare a vulture check for a Python project.
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152 @param lang language of the files or None to determine by internal
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 algorithm
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 @type str or None
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
155 @param filename name of the file to analyze
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
156 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
157 @param source string containing the code
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
158 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
159 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
160 if lang is None:
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
161 lang = "Python{0}".format(determinePythonVersion(filename, source))
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
162 if lang != "Python3":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
163 return
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
164
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
165 self.backgroundService.enqueueRequest("vulture", lang, filename, [source])
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
166
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
167 def vultureCheckBatch(self, argumentsList):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
168 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
169 Public method to prepare a vulture check for a Python project using
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
170 the batch mode.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
171
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
172 @param argumentsList list of arguments tuples with each tuple
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
173 containing filename and source
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
174 @type (str, str)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 """
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
176 data = {
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
177 "Python3": [],
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
178 }
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
179 for filename, source in argumentsList:
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
180 lang = "Python{0}".format(determinePythonVersion(filename, source))
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
181 if lang != "Python3":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
182 continue
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
183 else:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
184 data[lang].append((filename, source))
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
185
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
186 self.queuedBatches = []
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
187 if data["Python3"]:
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
188 self.queuedBatches.append("Python3")
62
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
189 self.backgroundService.enqueueRequest(
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
190 "batch_vulture", "Python3", "", data["Python3"]
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
191 )
62
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
192 self.batchesFinished = False
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
193
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 def cancelVultureCheckBatch(self):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196 Public method to cancel all batch jobs.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 """
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
198 self.backgroundService.requestCancel("batch_vulture", "Python3")
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
199
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
200 def activate(self):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
201 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
202 Public method to activate this plug-in.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
203
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
204 @return tuple of None and activation status
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
205 @rtype tuple of (None, bool)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
206 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
207 global error
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
208 error = "" # clear previous error
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
209
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
210 menu = ericApp().getObject("Project").getMenu("Checks")
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
211 if menu:
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
212 self.__projectAct = EricAction(
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
213 self.tr("Check Unused Code"),
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
214 self.tr("&Unused Code..."),
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
215 0,
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
216 0,
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
217 self,
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
218 "project_check_vulture",
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
219 )
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
220 self.__projectAct.setStatusTip(self.tr("Check for unused code"))
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
221 self.__projectAct.setWhatsThis(
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
222 self.tr(
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
223 """<b>Check Unused Code...</b>"""
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
224 """<p>This checks a Python project for unused code.</p>"""
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
225 )
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
226 )
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
227 self.__projectAct.triggered.connect(self.__projectVultureCheck)
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
228 ericApp().getObject("Project").addEricActions([self.__projectAct])
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
229 menu.addAction(self.__projectAct)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
230
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
231 ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
232 ericApp().getObject("Project").projectClosed.connect(self.__projectClosed)
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
233
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
234 return None, True
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
235
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
236 def deactivate(self):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
237 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
238 Public method to deactivate this plug-in.
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 """
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
240 ericApp().getObject("Project").showMenu.disconnect(self.__projectShowMenu)
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
241 ericApp().getObject("Project").projectClosed.disconnect(self.__projectClosed)
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
242
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
243 menu = ericApp().getObject("Project").getMenu("Checks")
69
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
244 if menu is not None and self.__projectAct is not None:
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
245 menu.removeAction(self.__projectAct)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
246 ericApp().getObject("Project").removeEricActions([self.__projectAct])
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
247
23
416ea417de46 Fixed a bug deactivating the plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
248 self.__initialize()
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
249
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
250 def __loadTranslator(self):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
251 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
252 Private method to load the translation file.
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
253 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
254 if self.__ui is not None:
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
255 loc = self.__ui.getLocale()
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
256 if loc and loc != "C":
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
257 locale_dir = os.path.join(
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
258 os.path.dirname(__file__), "VultureChecker", "i18n"
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
259 )
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
260 translation = "vulture_{0}".format(loc)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
261 translator = QTranslator(None)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
262 loaded = translator.load(translation, locale_dir)
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
263 if loaded:
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
264 self.__translator = translator
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
265 ericApp().installTranslator(self.__translator)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
266 else:
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
267 print(
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
268 "Warning: translation file '{0}' could not be"
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
269 " loaded.".format(translation)
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
270 )
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
271 print("Using default.")
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
272
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
273 def __projectShowMenu(self, menuName, menu):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
274 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
275 Private slot called, when the the project menu or a submenu is
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
276 about to be shown.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
277
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
278 @param menuName name of the menu to be shown
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
279 @type str
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
280 @param menu reference to the menu
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
281 @type QMenu
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
282 """
69
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
283 if menuName == "Check" and self.__projectAct is not None:
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
284 self.__projectAct.setEnabled(
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
285 ericApp().getObject("Project").getProjectLanguage() == "Python3"
69
3c2922b45a9f Upgraded embedded vulture library to version 2.3.0 (no eric patches for slot support needed anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
286 )
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
287
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
288 def __projectVultureCheck(self):
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
289 """
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
290 Private slot used to check the project for unused code.
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
291 """
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
292 project = ericApp().getObject("Project")
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
293 project.saveAllScripts()
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
294 ppath = project.getProjectPath()
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
295 files = [
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
296 os.path.join(ppath, file_)
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
297 for file_ in project.getSources()
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
298 if file_.endswith(tuple(Preferences.getPython("Python3Extensions")))
79
47e46cd3bb23 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
299 ]
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
300
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
301 if self.__projectVultureCheckerDialog is None:
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
302 from VultureChecker.VultureCheckerDialog import VultureCheckerDialog
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
303
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
304 self.__projectVultureCheckerDialog = VultureCheckerDialog(self)
1
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
305 self.__projectVultureCheckerDialog.show()
ea6aed49cd69 Started implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
306 self.__projectVultureCheckerDialog.prepare(files, project)
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
307
4
2a12ec365dd1 Started implementing the whitelist functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
308 def __projectClosed(self):
2a12ec365dd1 Started implementing the whitelist functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
309 """
2a12ec365dd1 Started implementing the whitelist functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
310 Private slot to handle closing a project.
2a12ec365dd1 Started implementing the whitelist functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
311 """
62
4a69da851bd2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
312 if self.__projectVultureCheckerDialog:
4
2a12ec365dd1 Started implementing the whitelist functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
313 self.__projectVultureCheckerDialog.clear()
45
232ed15782bb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
314
76
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
315
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
316 def installDependencies(pipInstall):
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
317 """
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
318 Function to install dependencies of this plug-in.
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
319
76
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
320 @param pipInstall function to be called with a list of package names.
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
321 @type function
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
322 """
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
323 try:
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
324 import vulture # __IGNORE_WARNING__
76
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
325 except ImportError:
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
326 pipInstall(["vulture>=2.3"])
69f611e5efbb Removed the included 'vulture' library and have it as an external dependency installed during the plug-in installation (for eric > 21.5)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
327
90
6393ee6e7993 Reformatted the sources with the Black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
328
45
232ed15782bb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
329 #
232ed15782bb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
330 # eflag: noqa = M801

eric ide

mercurial