PluginMetricsRadon.py

Tue, 09 Jul 2024 14:24:16 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 09 Jul 2024 14:24:16 +0200
branch
eric7
changeset 120
61bf877c4f1a
parent 114
c4e39e9e3987
child 122
bcfe13e956fb
permissions
-rw-r--r--

Added the Ui_*.py files and redid the distribution archive.

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

eric ide

mercurial