PluginMetricsRadon.py

Wed, 26 May 2021 17:43:25 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 26 May 2021 17:43:25 +0200
branch
eric7
changeset 83
d3490ea9facc
parent 80
a4f2000c6687
child 86
326e08294b3d
permissions
-rw-r--r--

Ported the plug-in to PyQt6 for eric7.

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

eric ide

mercurial