PluginMetricsRadon.py

Mon, 19 Sep 2022 17:54:33 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 19 Sep 2022 17:54:33 +0200
branch
eric7
changeset 94
725eaca7bc4b
parent 93
1ae73306422a
child 102
f7b964ea22a1
permissions
-rw-r--r--

Reformatted the code iaw. Black styling.

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

eric ide

mercurial