PluginMetricsRadon.py

Sat, 23 Dec 2023 15:48:48 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 15:48:48 +0100
branch
eric7
changeset 110
261babeb7cc6
parent 109
47df4b69f699
child 112
df1e86e89b24
permissions
-rw-r--r--

Updated copyright for 2024.

2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
110
261babeb7cc6 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 109
diff changeset
3 # Copyright (c) 2015 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the radon code metrics plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
10 import contextlib
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11 import os
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12
104
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
13 from PyQt6.QtCore import QObject, QTranslator, pyqtSignal
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
14 from PyQt6.QtGui import QAction
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
16 from eric7 import Globals, Preferences
102
f7b964ea22a1 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
17 from eric7.EricGui.EricAction import EricAction
f7b964ea22a1 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
18 from eric7.EricWidgets import EricMessageBox
f7b964ea22a1 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
19 from eric7.EricWidgets.EricApplication import ericApp
f7b964ea22a1 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
20 from eric7.Project.ProjectBrowserModel import ProjectBrowserFileItem
104
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
21
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
22 try:
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
23 from eric7.SystemUtilities.PythonUtilities import determinePythonVersion
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
24 except ImportError:
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
25 # imports for eric < 23.1
6eac83394939 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
26 from eric7.Utilities import determinePythonVersion
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 # Start-Of-Header
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
29 name = "Radon Metrics Plugin"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 autoactivate = True
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 deactivateable = True
107
0843dd7239f6 Added missing close event handlers and removed some unused method arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
33 version = "10.2.1"
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 className = "RadonMetricsPlugin"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 packageName = "RadonMetrics"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 shortDescription = "Code metrics plugin using radon package"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37 longDescription = (
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38 """This plug-in implements dialogs to show various code metrics. These"""
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
39 """ are determined using the radon code metrics package. 'Raw code"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
40 """ metrics', 'Maintainability Index' and 'McCabe Complexity' can be"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
41 """ requested through different dialogs for one file or the whole"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
42 """ project."""
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 )
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 needsRestart = False
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 pyqtApi = 2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46 # End-Of-Header
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 error = ""
42
04457b4ceda5 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 40
diff changeset
49
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
50
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
51 class RadonMetricsPlugin(QObject):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 Class implementing the radon code metrics plug-in.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
54
4
9ac53bf21182 Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
55 @signal metricsDone(str, dict) emitted when the code metrics were
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
56 determined for a file
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
57 @signal maintainabilityIndexDone(str, dict) emitted when the
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
58 maintainability index was determined for a file
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
59 @signal complexityDone(str, dict) emitted when the
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
60 cyclomatic complexity was determined for a file
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
61 @signal error(str, str, str) emitted in case of an error
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
62 @signal batchFinished(str) emitted when a code metrics batch is done
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
63 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
64
4
9ac53bf21182 Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
65 metricsDone = pyqtSignal(str, dict)
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
66 maintainabilityIndexDone = pyqtSignal(str, dict)
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
67 complexityDone = pyqtSignal(str, dict)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
68 error = pyqtSignal(str, str, str)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
69 batchFinished = pyqtSignal(str)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
70
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71 def __init__(self, ui):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
73 Constructor
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
74
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 @param ui reference to the user interface object
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
76 @type UserInterface
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 """
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
78 super().__init__(ui)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 self.__ui = ui
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 self.__initialize()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
81
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
82 self.backgroundService = ericApp().getObject("BackgroundService")
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
83
3
7150ed890fd5 Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
84 path = os.path.join(os.path.dirname(__file__), packageName)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
85
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
86 # raw code metrics calculation
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
87 self.backgroundService.serviceConnect(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
88 "radon_raw",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
89 "Python3",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
90 path,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
91 "CodeMetricsCalculator",
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
92 lambda fn, res: self.metricsCalculationDone("raw", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
93 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
94 "raw", fx, lang, fn, msg
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
95 ),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
96 onBatchDone=lambda fx, lang: self.batchJobDone("raw", fx, lang),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
97 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
98
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
99 # maintainability index calculation
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
100 self.backgroundService.serviceConnect(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
101 "radon_mi",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
102 "Python3",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
103 path,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
104 "MaintainabilityIndexCalculator",
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
105 lambda fn, res: self.metricsCalculationDone("mi", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
106 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
107 "mi", fx, lang, fn, msg
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
108 ),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
109 onBatchDone=lambda fx, lang: self.batchJobDone("mi", fx, lang),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
110 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
111
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
112 # cyclomatic complexity
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
113 self.backgroundService.serviceConnect(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
114 "radon_cc",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
115 "Python3",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
116 path,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
117 "CyclomaticComplexityCalculator",
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
118 lambda fn, res: self.metricsCalculationDone("cc", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
119 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
120 "cc", fx, lang, fn, msg
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
121 ),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
122 onBatchDone=lambda fx, lang: self.batchJobDone("cc", fx, lang),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
123 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
124
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
125 self.queuedBatches = {
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
126 "raw": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
127 "mi": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
128 "cc": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
129 }
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
130 self.batchesFinished = {
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
131 "raw": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
132 "mi": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
133 "cc": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
134 }
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
135
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 self.__translator = None
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 self.__loadTranslator()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
138
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
139 def __serviceError(self, type_, fn, msg):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
140 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 Private slot handling service errors.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
142
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
143 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
144 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 @param fn file name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 @param msg message text
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 """
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
150 self.error.emit(type_, fn, msg)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
151
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
152 def serviceErrorPy3(self, type_, fx, lang, fn, msg):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 Public slot handling service errors for Python 3.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
155
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
156 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
157 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 @param fx service name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
159 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
160 @param lang language
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
161 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
162 @param fn file name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 @param msg message text
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
165 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
166 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
167 if fx in ["radon_" + type_, "batch_radon_" + type_]:
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
168 if fx == "radon_" + type_:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
169 self.__serviceError(type_, fn, msg)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
170 else:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
171 self.__serviceError(type_, self.tr("Python 3 batch job"), msg)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
172 self.batchJobDone(type_, fx, lang)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
173
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
174 def batchJobDone(self, type_, fx, lang):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 Public slot handling the completion of a batch job.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
177
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
178 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
179 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 @param fx service name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
182 @param lang language
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
183 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
185 if fx in ["radon_" + type_, "batch_radon_" + type_]:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
186 if lang in self.queuedBatches[type_]:
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
187 self.queuedBatches[type_].remove(lang)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
188 # prevent sending the signal multiple times
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
189 if len(self.queuedBatches[type_]) == 0 and not self.batchesFinished[type_]:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
190 self.batchFinished.emit(type_)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
191 self.batchesFinished[type_] = True
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
192
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
193 def metricsCalculationDone(self, type_, filename, result):
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
194 """
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
195 Public slot to dispatch the result.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
196
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
197 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
198 @type str, one of ["raw", "mi", "cc"]
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
199 @param filename name of the file the results belong to
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
200 @type str
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
201 @param result result dictionary
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
202 @type dict
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
203 """
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
204 if type_ == "raw":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
205 self.metricsDone.emit(filename, result)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
206 elif type_ == "mi":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
207 self.maintainabilityIndexDone.emit(filename, result)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
208 elif type_ == "cc":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
209 self.complexityDone.emit(filename, result)
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
210 else:
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
211 self.error.emit(
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
212 type_,
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
213 filename,
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
214 self.tr("Unknown metrics result received ({0}).").format(type_),
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
215 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
216
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
217 def __initialize(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
218 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
219 Private slot to (re)initialize the plugin.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
220 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
221 self.__projectRawMetricsDialog = None
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
222 self.__projectMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
223 self.__projectCCDialog = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
224 self.__projectMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
225 self.__projectSeparatorActs = []
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
226
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
227 self.__projectBrowserRawMetricsDialog = None
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
228 self.__projectBrowserMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
229 self.__projectBrowserCCDialog = None
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
230 self.__projectBrowserMenu = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
231 self.__projectBrowserMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
232 self.__projectBrowserSeparatorActs = []
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
233
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
234 self.__editors = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
235 self.__editorRawMetricsDialog = None
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
236 self.__editorMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
237 self.__editorCCDialog = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
238 self.__editorMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 self.__editorSeparatorActs = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
240
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
241 def rawMetrics(self, lang, filename, source):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
242 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
243 Public method to prepare raw code metrics calculation on one Python
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
244 source file.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
245
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
246 @param lang language of the file or None to determine by internal
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
247 algorithm
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
248 @type str or None
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
249 @param filename source filename
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
250 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
251 @param source string containing the code
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
252 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
253 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
254 if lang is None:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
255 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
256 if lang == "Python3":
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
257 self.backgroundService.enqueueRequest("radon_raw", lang, filename, [source])
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
258
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
259 def rawMetricsBatch(self, argumentsList):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
260 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
261 Public method to prepare raw code metrics calculation on multiple
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
262 Python source files.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
263
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
264 @param argumentsList list of arguments tuples with each tuple
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
265 containing filename and source
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
266 @type (str, str)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
267 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
268 data = {
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
269 "Python3": [],
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
270 }
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
271 for filename, source in argumentsList:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
272 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
273 if lang == "Python3":
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
274 data[lang].append((filename, source))
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
275
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
276 self.queuedBatches["raw"] = []
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
277 if data[lang]:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
278 self.queuedBatches["raw"].append("Python3")
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
279 self.backgroundService.enqueueRequest(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
280 "batch_radon_raw", "Python3", "", data["Python3"]
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
281 )
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
282 self.batchesFinished["raw"] = False
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
283
3
7150ed890fd5 Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
284 def cancelRawMetricsBatch(self):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
285 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
286 Public method to cancel all batch jobs.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
287 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
288 self.backgroundService.requestCancel("batch_radon_raw", "Python3")
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
289
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
290 def maintainabilityIndex(self, lang, filename, source):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
291 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
292 Public method to prepare maintainability index calculation on one
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
293 Python source file.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
294
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
295 @param lang language of the file or None to determine by internal
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
296 algorithm
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
297 @type str or None
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
298 @param filename source filename
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
299 @type str
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
300 @param source string containing the code
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
301 @type str
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
302 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
303 if lang is None:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
304 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
305 if lang == "Python3":
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
306 self.backgroundService.enqueueRequest("radon_mi", lang, filename, [source])
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
307
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
308 def maintainabilityIndexBatch(self, argumentsList):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
309 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
310 Public method to prepare maintainability index calculation on multiple
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
311 Python source files.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
312
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
313 @param argumentsList list of arguments tuples with each tuple
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
314 containing filename and source
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
315 @type (str, str)
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
316 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
317 data = {
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
318 "Python3": [],
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
319 }
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
320 for filename, source in argumentsList:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
321 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
322 if lang == "Python3":
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
323 data[lang].append((filename, source))
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
324
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
325 self.queuedBatches["mi"] = []
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
326 if data["Python3"]:
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
327 self.queuedBatches["mi"].append("Python3")
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
328 self.backgroundService.enqueueRequest(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
329 "batch_radon_mi", "Python3", "", data["Python3"]
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
330 )
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
331 self.batchesFinished["mi"] = False
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
332
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
333 def cancelMaintainabilityIndexBatch(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
334 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
335 Public method to cancel all batch jobs.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
336 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
337 self.backgroundService.requestCancel("batch_radon_mi", "Python3")
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
338
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
339 def cyclomaticComplexity(self, lang, filename, source):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
340 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
341 Public method to prepare cyclomatic complexity calculation on one
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
342 Python source file.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
343
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
344 @param lang language of the file or None to determine by internal
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
345 algorithm
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
346 @type str or None
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
347 @param filename source filename
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
348 @type str
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
349 @param source string containing the code
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
350 @type str
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
351 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
352 if lang is None:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
353 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
354 if lang == "Python3":
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
355 self.backgroundService.enqueueRequest("radon_cc", lang, filename, [source])
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
356
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
357 def cyclomaticComplexityBatch(self, argumentsList):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
358 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
359 Public method to prepare cyclomatic complexity calculation on multiple
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
360 Python source files.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
361
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
362 @param argumentsList list of arguments tuples with each tuple
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
363 containing filename and source
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
364 @type (str, str)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
365 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
366 data = {
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
367 "Python3": [],
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
368 }
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
369 for filename, source in argumentsList:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
370 lang = "Python{0}".format(determinePythonVersion(filename, source))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
371 if lang == "Python3":
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
372 data[lang].append((filename, source))
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
373
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
374 self.queuedBatches["raw"] = []
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
375 if data["Python3"]:
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
376 self.queuedBatches["cc"].append("Python3")
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
377 self.backgroundService.enqueueRequest(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
378 "batch_radon_cc", "Python3", "", data["Python3"]
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
379 )
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
380 self.batchesFinished["cc"] = False
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
381
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
382 def cancelComplexityBatch(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
383 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
384 Public method to cancel all batch jobs.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
385 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
386 self.backgroundService.requestCancel("batch_radon_cc", "Python3")
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
387
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
388 def activate(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
389 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
390 Public method to activate this plug-in.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
391
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
392 @return tuple of None and activation status
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
393 @rtype (None, bool)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
394 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
395 global error
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
396 error = "" # clear previous error
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
397
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
398 # Project menu actions
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
399 menu = ericApp().getObject("Project").getMenu("Show")
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
400 if menu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
401 if not menu.isEmpty():
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
402 act = menu.addSeparator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
403 self.__projectSeparatorActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
404
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
405 # header action
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
406 act = QAction(self.tr("Radon"), self)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
407 font = act.font()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
408 font.setBold(True)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
409 act.setFont(font)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
410 act.triggered.connect(self.__showRadonVersion)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
411 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
412 self.__projectMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
413
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
414 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
415 self.tr("Code Metrics"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
416 self.tr("Code &Metrics..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
417 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
418 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
419 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
420 "project_show_radon_raw",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
421 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
422 act.setStatusTip(self.tr("Show raw code metrics."))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
423 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
424 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
425 """<b>Code Metrics...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
426 """<p>This calculates raw code metrics of Python files"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
427 """ and shows the amount of lines of code, logical lines"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
428 """ of code, source lines of code, comment lines,"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
429 """ multi-line strings and blank lines.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
430 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
431 )
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
432 act.triggered.connect(self.__projectRawMetrics)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
433 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
434 self.__projectMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
435
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
436 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
437 self.tr("Maintainability Index"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
438 self.tr("Maintainability &Index..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
439 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
440 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
441 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
442 "project_show_radon_mi",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
443 )
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
444 act.setStatusTip(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
445 self.tr("Show the maintainability index for Python files.")
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
446 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
447 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
448 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
449 """<b>Maintainability Index...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
450 """<p>This calculates the maintainability index of Python"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
451 """ files and shows it together with a ranking.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
452 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
453 )
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
454 act.triggered.connect(self.__projectMaintainabilityIndex)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
455 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
456 self.__projectMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
457
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
458 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
459 self.tr("Cyclomatic Complexity"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
460 self.tr("Cyclomatic &Complexity..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
461 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
462 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
463 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
464 "project_show_radon_cc",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
465 )
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
466 act.setStatusTip(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
467 self.tr("Show the cyclomatic complexity for Python files.")
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
468 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
469 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
470 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
471 """<b>Cyclomatic Complexity...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
472 """<p>This calculates the cyclomatic complexity of Python"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
473 """ files and shows it together with a ranking.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
474 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
475 )
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
476 act.triggered.connect(self.__projectCyclomaticComplexity)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
477 menu.addAction(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
478 self.__projectMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
479
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
480 act = menu.addSeparator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
481 self.__projectSeparatorActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
482
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
483 ericApp().getObject("Project").addEricActions(self.__projectMetricsActs[1:])
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
484
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
485 # Editor menu actions (one separator each above and below)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
486 act = QAction(self)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
487 act.setSeparator(True)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
488 self.__editorSeparatorActs.append(act)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
489 act = QAction(self)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
490 act.setSeparator(True)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
491 self.__editorSeparatorActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
492
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
493 # header action
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
494 act = QAction(self.tr("Radon"), self)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
495 font = act.font()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
496 font.setBold(True)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
497 act.setFont(font)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
498 act.triggered.connect(self.__showRadonVersion)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
499 self.__editorMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
500
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
501 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
502 self.tr("Code Metrics"), self.tr("Code &Metrics..."), 0, 0, self, ""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
503 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
504 act.setStatusTip(self.tr("Show raw code metrics."))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
505 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
506 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
507 """<b>Code Metrics...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
508 """<p>This calculates raw code metrics of Python files"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
509 """ and shows the amount of lines of code, logical lines"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
510 """ of code, source lines of code, comment lines,"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
511 """ multi-line strings and blank lines.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
512 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
513 )
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
514 act.triggered.connect(self.__editorRawMetrics)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
515 self.__editorMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
516
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
517 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
518 self.tr("Maintainability Index"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
519 self.tr("Maintainability &Index..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
520 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
521 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
522 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
523 "",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
524 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
525 act.setStatusTip(self.tr("Show the maintainability index for Python files."))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
526 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
527 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
528 """<b>Maintainability Index...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
529 """<p>This calculates the maintainability index of Python"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
530 """ files and shows it together with a ranking.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
531 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
532 )
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
533 act.triggered.connect(self.__editorMaintainabilityIndex)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
534 self.__editorMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
535
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
536 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
537 self.tr("Cyclomatic Complexity"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
538 self.tr("Cyclomatic &Complexity..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
539 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
540 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
541 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
542 "",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
543 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
544 act.setStatusTip(self.tr("Show the cyclomatic complexity for Python files."))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
545 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
546 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
547 """<b>Cyclomatic Complexity...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
548 """<p>This calculates the cyclomatic complexity of Python"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
549 """ files and shows it together with a ranking.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
550 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
551 )
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
552 act.triggered.connect(self.__editorCyclomaticComplexity)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
553 self.__editorMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
554
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
555 ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
556 ericApp().getObject("Project").projectClosed.connect(self.__projectClosed)
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
557 ericApp().getObject("ProjectBrowser").getProjectBrowser(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
558 "sources"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
559 ).showMenu.connect(self.__projectBrowserShowMenu)
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
560 ericApp().getObject("ViewManager").editorOpenedEd.connect(self.__editorOpened)
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
561 ericApp().getObject("ViewManager").editorClosedEd.connect(self.__editorClosed)
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
562
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
563 for editor in ericApp().getObject("ViewManager").getOpenEditors():
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
564 self.__editorOpened(editor)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
565
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
566 return None, True
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
567
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
568 def deactivate(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
569 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
570 Public method to deactivate this plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
571 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
572 ericApp().getObject("Project").showMenu.disconnect(self.__projectShowMenu)
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
573 ericApp().getObject("Project").projectClosed.disconnect(self.__projectClosed)
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
574 ericApp().getObject("ProjectBrowser").getProjectBrowser(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
575 "sources"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
576 ).showMenu.disconnect(self.__projectBrowserShowMenu)
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
577 ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
578 self.__editorOpened
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
579 )
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
580 ericApp().getObject("ViewManager").editorClosedEd.disconnect(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
581 self.__editorClosed
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
582 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
583
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
584 menu = ericApp().getObject("Project").getMenu("Show")
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
585 if menu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
586 for sep in self.__projectSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
587 menu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
588 for act in self.__projectMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
589 menu.removeAction(act)
86
326e08294b3d Fixed an issue caused by a forgotten eric7 change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
590 ericApp().getObject("Project").removeEricActions(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
591 self.__projectMetricsActs[1:]
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
592 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
593
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
594 if self.__projectBrowserMenu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
595 for sep in self.__projectBrowserSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
596 self.__projectBrowserMenu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
597 for act in self.__projectBrowserMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
598 self.__projectBrowserMenu.removeAction(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
599
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
600 for editor in self.__editors:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
601 editor.showMenu.disconnect(self.__editorShowMenu)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
602 menu = editor.getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
603 if menu is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
604 for sep in self.__editorSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
605 menu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
606 for act in self.__editorMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
607 menu.removeAction(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
608
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
609 self.__initialize()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
610
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
611 def __loadTranslator(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
612 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
613 Private method to load the translation file.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
614 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
615 if self.__ui is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
616 loc = self.__ui.getLocale()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
617 if loc and loc != "C":
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
618 locale_dir = os.path.join(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
619 os.path.dirname(__file__), "RadonMetrics", "i18n"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
620 )
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
621 translation = "radon_{0}".format(loc)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
622 translator = QTranslator(None)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
623 loaded = translator.load(translation, locale_dir)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
624 if loaded:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
625 self.__translator = translator
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
626 ericApp().installTranslator(self.__translator)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
627 else:
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
628 print(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
629 "Warning: translation file '{0}' could not be"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
630 " loaded.".format(translation)
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
631 )
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
632 print("Using default.")
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
633
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
634 def __projectShowMenu(
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
635 self,
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
636 menuName,
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
637 menu, # noqa: U100
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
638 ):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
639 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
640 Private slot called, when the the project menu or a submenu is
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
641 about to be shown.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
642
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
643 @param menuName name of the menu to be shown
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
644 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
645 @param menu reference to the menu
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
646 @type QMenu
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
647 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
648 if menuName == "Show":
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
649 for act in self.__projectMetricsActs[1:]:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
650 act.setEnabled(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
651 ericApp().getObject("Project").getProjectLanguage() == "Python3"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
652 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
653
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
654 def __projectBrowserShowMenu(self, menuName, menu):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
655 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
656 Private slot called, when the the project browser context menu or a
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
657 submenu is about to be shown.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
658
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
659 @param menuName name of the menu to be shown
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
660 @type str
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
661 @param menu reference to the menu
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
662 @type QMenu
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
663 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
664 if (
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
665 menuName == "Show"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
666 and ericApp().getObject("Project").getProjectLanguage() == "Python3"
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
667 and self.__projectBrowserMenu is None
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
668 ):
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
669 self.__projectBrowserMenu = menu
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
670
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
671 act = menu.addSeparator()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
672 self.__projectBrowserSeparatorActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
673
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
674 # header action
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
675 act = QAction(self.tr("Radon"), self)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
676 font = act.font()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
677 font.setBold(True)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
678 act.setFont(font)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
679 act.triggered.connect(self.__showRadonVersion)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
680 menu.addAction(act)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
681 self.__projectBrowserMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
682
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
683 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
684 self.tr("Code Metrics"), self.tr("Code &Metrics..."), 0, 0, self, ""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
685 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
686 act.setStatusTip(self.tr("Show raw code metrics."))
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
687 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
688 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
689 """<b>Code Metrics...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
690 """<p>This calculates raw code metrics of Python files"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
691 """ and shows the amount of lines of code, logical lines"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
692 """ of code, source lines of code, comment lines,"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
693 """ multi-line strings and blank lines.</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
694 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
695 )
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
696 act.triggered.connect(self.__projectBrowserRawMetrics)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
697 menu.addAction(act)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
698 self.__projectBrowserMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
699
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
700 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
701 self.tr("Maintainability Index"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
702 self.tr("Maintainability &Index..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
703 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
704 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
705 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
706 "",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
707 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
708 act.setStatusTip(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
709 self.tr("Show the maintainability index for Python files.")
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
710 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
711 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
712 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
713 """<b>Maintainability Index...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
714 """<p>This calculates the maintainability index of"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
715 """ Python files and shows it together with a ranking."""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
716 """</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
717 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
718 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
719 act.triggered.connect(self.__projectBrowserMaintainabilityIndex)
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
720 menu.addAction(act)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
721 self.__projectBrowserMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
722
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
723 act = EricAction(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
724 self.tr("Cyclomatic Complexity"),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
725 self.tr("Cyclomatic &Complexity..."),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
726 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
727 0,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
728 self,
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
729 "",
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
730 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
731 act.setStatusTip(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
732 self.tr("Show the cyclomatic complexity for Python files.")
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
733 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
734 act.setWhatsThis(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
735 self.tr(
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
736 """<b>Cyclomatic Complexity...</b>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
737 """<p>This calculates the cyclomatic complexity of"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
738 """ Python files and shows it together with a ranking."""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
739 """</p>"""
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
740 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
741 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
742 act.triggered.connect(self.__projectBrowserCyclomaticComplexity)
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
743 menu.addAction(act)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
744 self.__projectBrowserMetricsActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
745
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
746 act = menu.addSeparator()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
747 self.__projectBrowserSeparatorActs.append(act)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
748
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
749 def __editorOpened(self, editor):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
750 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
751 Private slot called, when a new editor was opened.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
752
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
753 @param editor reference to the new editor
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
754 @type Editor
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
755 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
756 menu = editor.getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
757 if menu is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
758 menu.addAction(self.__editorSeparatorActs[0])
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
759 menu.addActions(self.__editorMetricsActs)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
760 menu.addAction(self.__editorSeparatorActs[1])
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
761 editor.showMenu.connect(self.__editorShowMenu)
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
762 editor.editorRenamed.connect(lambda: self.__editorRenamed(editor))
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
763 self.__editors.append(editor)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
764
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
765 def __editorClosed(self, editor):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
766 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
767 Private slot called, when an editor was closed.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
768
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
769 @param editor reference to the editor
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
770 @type Editor
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
771 """
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
772 with contextlib.suppress(ValueError):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
773 self.__editors.remove(editor)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
774
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
775 def __editorRenamed(self, editor):
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
776 """
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
777 Private slot called, when an editor was renamed.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
778
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
779 @param editor reference to the renamed editor
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
780 @type Editor
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
781 """
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
782 menu = editor.getMenu("Show")
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
783 if menu is not None:
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
784 menu.addAction(self.__editorSeparatorActs[0])
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
785 menu.addActions(self.__editorMetricsActs)
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
786 menu.addAction(self.__editorSeparatorActs[1])
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
787
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
788 def __editorShowMenu(
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
789 self,
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
790 menuName,
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
791 menu, # noqa: U100
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
792 editor,
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
793 ):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
794 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
795 Private slot called, when the the editor context menu or a submenu is
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
796 about to be shown.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
797
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
798 @param menuName name of the menu to be shown
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
799 @type str
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
800 @param menu reference to the menu
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
801 @type QMenu
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
802 @param editor reference to the editor
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
803 @type Editor
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
804 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
805 if menuName == "Show":
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
806 enable = editor.isPyFile()
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
807 for act in self.__editorMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
808 act.setEnabled(enable)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
809
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
810 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
811 ## Raw code metrics calculations
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
812 ##################################################################
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
813
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
814 def __projectRawMetrics(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
815 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
816 Private slot used to calculate raw code metrics for the project.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
817 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
818 project = ericApp().getObject("Project")
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
819 project.saveAllScripts()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
820 ppath = project.getProjectPath()
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
821 files = [
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
822 os.path.join(ppath, file)
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
823 for file in project.getSources()
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
824 if file.endswith(tuple(Preferences.getPython("Python3Extensions")))
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
825 ]
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
826
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
827 if self.__projectRawMetricsDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
828 from RadonMetrics.RawMetricsDialog import RawMetricsDialog # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
829
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
830 self.__projectRawMetricsDialog = RawMetricsDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
831 self.__projectRawMetricsDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
832 self.__projectRawMetricsDialog.prepare(files, project)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
833
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
834 def __projectBrowserRawMetrics(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
835 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
836 Private method to handle the code metrics context menu action of the
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
837 project sources browser.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
838 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
839 browser = ericApp().getObject("ProjectBrowser").getProjectBrowser("sources")
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
840 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
841 fn = []
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
842 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
843 fn.append(itm.fileName())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
844 else:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
845 itm = browser.model().item(browser.currentIndex())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
846 try:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
847 fn = itm.fileName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
848 except AttributeError:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
849 fn = itm.dirName()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
850
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
851 if self.__projectBrowserRawMetricsDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
852 from RadonMetrics.RawMetricsDialog import RawMetricsDialog # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
853
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
854 self.__projectBrowserRawMetricsDialog = RawMetricsDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
855 self.__projectBrowserRawMetricsDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
856 self.__projectBrowserRawMetricsDialog.start(fn)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
857
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
858 def __editorRawMetrics(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
859 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
860 Private slot to handle the raw code metrics action of the editor show
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
861 menu.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
862 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
863 editor = ericApp().getObject("ViewManager").activeWindow()
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
864 if (
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
865 editor is not None
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
866 and editor.checkDirty()
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
867 and editor.getFileName() is not None
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
868 ):
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
869 if self.__editorRawMetricsDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
870 from RadonMetrics.RawMetricsDialog import RawMetricsDialog # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
871
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
872 self.__editorRawMetricsDialog = RawMetricsDialog(self)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
873 self.__editorRawMetricsDialog.show()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
874 self.__editorRawMetricsDialog.start(editor.getFileName())
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
875
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
876 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
877 ## Maintainability index calculations
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
878 ##################################################################
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
879
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
880 def __projectMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
881 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
882 Private slot used to calculate the maintainability indexes for the
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
883 project.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
884 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
885 project = ericApp().getObject("Project")
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
886 project.saveAllScripts()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
887 ppath = project.getProjectPath()
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
888 files = [
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
889 os.path.join(ppath, file)
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
890 for file in project.getSources()
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
891 if file.endswith(tuple(Preferences.getPython("Python3Extensions")))
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
892 ]
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
893
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
894 if self.__projectMIDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
895 from RadonMetrics.MaintainabilityIndexDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
896 MaintainabilityIndexDialog,
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
897 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
898
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
899 self.__projectMIDialog = MaintainabilityIndexDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
900 self.__projectMIDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
901 self.__projectMIDialog.prepare(files, project)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
902
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
903 def __projectBrowserMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
904 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
905 Private method to handle the maintainability index context menu action
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
906 of the project sources browser.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
907 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
908 browser = ericApp().getObject("ProjectBrowser").getProjectBrowser("sources")
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
909 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
910 fn = []
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
911 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
912 fn.append(itm.fileName())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
913 else:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
914 itm = browser.model().item(browser.currentIndex())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
915 try:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
916 fn = itm.fileName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
917 except AttributeError:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
918 fn = itm.dirName()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
919
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
920 if self.__projectBrowserMIDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
921 from RadonMetrics.MaintainabilityIndexDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
922 MaintainabilityIndexDialog,
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
923 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
924
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
925 self.__projectBrowserMIDialog = MaintainabilityIndexDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
926 self.__projectBrowserMIDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
927 self.__projectBrowserMIDialog.start(fn)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
928
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
929 def __editorMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
930 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
931 Private slot to handle the maintainability index action of the editor
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
932 show menu.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
933 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
934 editor = ericApp().getObject("ViewManager").activeWindow()
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
935 if (
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
936 editor is not None
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
937 and editor.checkDirty()
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
938 and editor.getFileName() is not None
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
939 ):
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
940 if self.__editorMIDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
941 from RadonMetrics.MaintainabilityIndexDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
942 MaintainabilityIndexDialog,
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
943 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
944
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
945 self.__editorMIDialog = MaintainabilityIndexDialog(self)
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
946 self.__editorMIDialog.show()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
947 self.__editorMIDialog.start(editor.getFileName())
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
948
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
949 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
950 ## Cyclomatic complexity calculations
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
951 ##################################################################
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
952
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
953 def __projectCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
954 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
955 Private slot used to calculate the cyclomatic complexity for the
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
956 project.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
957 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
958 project = ericApp().getObject("Project")
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
959 project.saveAllScripts()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
960 ppath = project.getProjectPath()
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
961 files = [
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
962 os.path.join(ppath, file)
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
963 for file in project.getSources()
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
964 if file.endswith(tuple(Preferences.getPython("Python3Extensions")))
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
965 ]
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
966
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
967 if self.__projectCCDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
968 from RadonMetrics.CyclomaticComplexityDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
969 CyclomaticComplexityDialog,
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
970 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
971
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
972 self.__projectCCDialog = CyclomaticComplexityDialog(self)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
973 self.__projectCCDialog.show()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
974 self.__projectCCDialog.prepare(files, project)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
975
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
976 def __projectBrowserCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
977 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
978 Private method to handle the cyclomatic complexity context menu action
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
979 of the project sources browser.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
980 """
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
981 browser = ericApp().getObject("ProjectBrowser").getProjectBrowser("sources")
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
982 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
983 fn = []
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
984 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
985 fn.append(itm.fileName())
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
986 else:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
987 itm = browser.model().item(browser.currentIndex())
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
988 try:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
989 fn = itm.fileName()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
990 except AttributeError:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
991 fn = itm.dirName()
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
992
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
993 if self.__projectBrowserCCDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
994 from RadonMetrics.CyclomaticComplexityDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
995 CyclomaticComplexityDialog,
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
996 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
997
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
998 self.__projectBrowserCCDialog = CyclomaticComplexityDialog(
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
999 self, isSingle=True
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1000 )
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1001 self.__projectBrowserCCDialog.show()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1002 self.__projectBrowserCCDialog.start(fn)
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1003
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1004 def __editorCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1005 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1006 Private slot to handle the cyclomatic complexity action of the editor
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1007 show menu.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1008 """
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
1009 editor = ericApp().getObject("ViewManager").activeWindow()
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1010 if (
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1011 editor is not None
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1012 and editor.checkDirty()
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1013 and editor.getFileName() is not None
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1014 ):
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1015 if self.__editorCCDialog is None:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
1016 from RadonMetrics.CyclomaticComplexityDialog import ( # noqa: I101
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1017 CyclomaticComplexityDialog,
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1018 )
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1019
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1020 self.__editorCCDialog = CyclomaticComplexityDialog(self, isSingle=True)
77
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1021 self.__editorCCDialog.show()
7e1793d03381 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
1022 self.__editorCCDialog.start(editor.getFileName())
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1023
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1024 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1025 ## Radon info display
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1026 ##################################################################
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1027
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1028 def __showRadonVersion(self):
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1029 """
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1030 Private slot to show the version number of the used radon library.
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1031 """
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
1032 from radon import __version__ # noqa: I102
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1033
83
d3490ea9facc Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
1034 EricMessageBox.information(
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1035 None,
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1036 self.tr("Radon"),
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1037 self.tr(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1038 """<p><b>Radon Version {0}</b></p>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1039 """<p>Radon is a Python tool that computes various metrics"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1040 """ from the source code. Radon can compute:"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1041 """<ul>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1042 """<li><b>Raw</b> metrics (these include SLOC, comment"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1043 """ lines, blank lines, multi line strings, ...)</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1044 """<li><b>Maintainability Index</b> (the one used in Visual"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1045 """ Studio)</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1046 """<li><b>McCabe's complexity</b>, i.e. cyclomatic"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1047 """ complexity</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1048 """</ul></p>"""
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1049 ).format(__version__),
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1050 )
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1051
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1052 ##################################################################
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1053 ## Project handling methods
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1054 ##################################################################
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1055
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1056 def __projectClosed(self):
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1057 """
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1058 Private slot to handle closing a project.
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1059 """
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1060 self.__projectCCDialog and self.__projectCCDialog.clear()
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1061 self.__projectMIDialog and self.__projectMIDialog.clear()
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
1062 if self.__projectRawMetricsDialog:
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1063 self.__projectRawMetricsDialog.clear()
43
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
1064
80
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1065
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1066 def installDependencies(pipInstall):
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1067 """
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1068 Function to install dependencies of this plug-in.
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1069
80
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1070 @param pipInstall function to be called with a list of package names.
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1071 @type function
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1072 """
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1073 try:
109
47df4b69f699 Corrected some code style issues and code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
1074 from radon import __version__ as radon_version # noqa: I101, I102
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1075
80
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1076 if Globals.versionToTuple(radon_version) < (4, 5, 0):
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1077 # force an upgrade
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1078 pipInstall(["radon>=4.5.0"])
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1079 except ImportError:
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1080 pipInstall(["radon>=4.5.0"])
a4f2000c6687 Removed the included 'radon' 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: 77
diff changeset
1081
94
725eaca7bc4b Reformatted the code iaw. Black styling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
1082
43
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
1083 #
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
1084 # eflag: noqa = M801

eric ide

mercurial