PluginVulture.py

Mon, 19 Sep 2022 18:11:49 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 19 Sep 2022 18:11:49 +0200
branch
eric7
changeset 90
6393ee6e7993
parent 89
58860f9f3046
child 95
1c4dadf3ce89
permissions
-rw-r--r--

Reformatted the sources with the Black tool.

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

eric ide

mercurial