VultureChecker/VultureCheckerService.py

Sat, 31 Dec 2016 13:50:28 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 31 Dec 2016 13:50:28 +0100
changeset 44
9be43ed02aaa
parent 39
445ed09016ce
child 45
232ed15782bb
permissions
-rw-r--r--

Updated copyright for 2017.

2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
44
9be43ed02aaa Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
3 # Copyright (c) 2015 - 2017 Detlev Offenbach <detlev@die-offenbachs.de>
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the cyclomatic complexity service.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 try:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 str = unicode # __IGNORE_EXCEPTION__ __IGNORE_WARNING__
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 except NameError:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 pass
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import multiprocessing
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import sys
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from vulture import Vulture
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def initService():
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Initialize the service and return the entry point.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @return the entry point for the background client (function)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 return vultureCheck
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 def initBatchService():
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Initialize the batch service and return the entry point.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @return the entry point for the background client (function)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 return batchVultureCheck
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 def vultureCheck(file, text=""):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Private function to analyze one file.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param file source filename
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param text source text
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @return tuple containing the result dictionary
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @rtype (tuple of dict)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 return __analyze(file, text)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 def batchVultureCheck(argumentsList, send, fx, cancelled):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 Module function to analyze a batch of files.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @param argumentsList list of arguments tuples as given for vultureCheck
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @type list
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @param send reference to send function
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @type function
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param fx registered service name
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @param cancelled reference to function checking for a cancellation
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @type function
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 try:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 NumberOfProcesses = multiprocessing.cpu_count()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 if NumberOfProcesses >= 1:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 NumberOfProcesses -= 1
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 except NotImplementedError:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 NumberOfProcesses = 1
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 # Create queues
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 taskQueue = multiprocessing.Queue()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 doneQueue = multiprocessing.Queue()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 # Submit tasks (initially two time number of processes
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 initialTasks = 2 * NumberOfProcesses
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 for task in argumentsList[:initialTasks]:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 taskQueue.put(task)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 # Start worker processes
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 for i in range(NumberOfProcesses):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 .start()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 # Get and send results
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 endIndex = len(argumentsList) - initialTasks
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 for i in range(len(argumentsList)):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 filename, result = doneQueue.get()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 send(fx, filename, result)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 if cancelled():
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 # just exit the loop ignoring the results of queued tasks
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 break
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 if i < endIndex:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 taskQueue.put(argumentsList[i + initialTasks])
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 # Tell child processes to stop
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 for i in range(NumberOfProcesses):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 taskQueue.put('STOP')
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 def worker(input, output):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 Module function acting as the parallel worker for the cyclomatic
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 complexity calculation.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @param input input queue
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @type multiprocessing.Queue
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @param output output queue
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 @type multiprocessing.Queue
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 for filename, source in iter(input.get, 'STOP'):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 result = __analyze(filename, source)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 output.put((filename, result))
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
18
e19e7622a428 Added some vulture improvements from vulture repository.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
120 def __analyze(filename, text=""):
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 Private function to analyze one Python file.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
18
e19e7622a428 Added some vulture improvements from vulture repository.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
124 @param filename source file name
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 @param text source text
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @type str
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @return tuple containing the result dictionary
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @rtype (tuple of dict)
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 # Check type for py2: if not str it's unicode
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 if sys.version_info[0] == 2:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 try:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 text = text.encode('utf-8')
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 except UnicodeError:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 pass
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 try:
18
e19e7622a428 Added some vulture improvements from vulture repository.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
139 v = EricVulture()
e19e7622a428 Added some vulture improvements from vulture repository.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
140 v.scan(text, filename=filename)
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 res = v.getResults()
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 except Exception as err:
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 res = {"error": str(err)}
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 return (res, )
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 class EricVulture(Vulture):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 Class to adopt the Vulture class to the eric plug-in functionality.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 def __item2Dict(self, item):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Private method to convert a vulture item to a dictionary.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @param item vulture item
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @type vulture.Item
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @return item dictionary
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @rtype dict
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 d = {
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 "name": str(item),
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 "type": getattr(item, "typ", ""),
18
e19e7622a428 Added some vulture improvements from vulture repository.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
163 "file": getattr(item, "filename", ""),
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
164 "line": getattr(item, "lineno", ""),
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 }
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 return d
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 def getResults(self):
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 Public method to get the scan results.
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @return scan results
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 @rtype dict
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 return {
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
176 "DefinedAttributes":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 [self.__item2Dict(i) for i in self.defined_attrs],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
178 "DefinedFunctions":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 [self.__item2Dict(i) for i in self.defined_funcs],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
180 "DefinedSlots":
7
a1a6ff3e5486 Patched the included vulture.py to support the @pyqtSlot() decorator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
181 [self.__item2Dict(i) for i in self.defined_slots],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
182 "DefinedProperties":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 [self.__item2Dict(i) for i in self.defined_props],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
184 "DefinedVariables":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 [self.__item2Dict(i) for i in self.defined_vars],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
186 "UsedAttributes":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 [self.__item2Dict(i) for i in self.used_attrs],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
188 "UsedVariables":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 [self.__item2Dict(i) for i in self.used_vars],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
190 "TupleVariables":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 [self.__item2Dict(i) for i in self.tuple_assign_vars],
9
1ce891a2b3ae Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
192 "Aliases":
2
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 [self.__item2Dict(i) for i in self.names_imported_as_aliases],
b517a1c5d5de Continued implementing the vulture checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 }

eric ide

mercurial