PluginMetricsRadon.py

Sat, 27 May 2023 15:33:58 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 27 May 2023 15:33:58 +0200
branch
eric7
changeset 107
0843dd7239f6
parent 106
6422943b388f
child 109
47df4b69f699
permissions
-rw-r--r--

Added missing close event handlers and removed some unused method arguments.

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

eric ide

mercurial