Tue, 15 Sep 2015 19:22:38 +0200
Continued implementing the raw code metrics stuff.
3
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de> |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | from __future__ import unicode_literals |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
4
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
8 | try: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
9 | str = unicode # __IGNORE_EXCEPTION __IGNORE_WARNING__ |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
10 | except NameError: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
11 | pass |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
12 | |
3
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | import multiprocessing |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | def initService(): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Initialize the service and return the entry point. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | @return the entry point for the background client (function) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | return codeMetrics |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | def initBatchService(): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | Initialize the batch service and return the entry point. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @return the entry point for the background client (function) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | return batchCodeMetrics |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | def codeMetrics(file, text="", type_=""): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | Private function to calculate selected code metrics of one file. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @param file source filename |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @type str |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param text source text |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param str |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @return tuple containing the filename and the result list |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @rtype (str, list) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | if type_ == "raw": |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | return __rawCodeMetrics(file, text) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | # TODO: Return error indication |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | def batchCodeMetrics(argumentsList, send, fx, cancelled): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | Module function to calculate selected code metrics for a batch of files. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | @param argumentsList list of arguments tuples as given for check |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @type list |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | @param send reference to send function |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | @type function |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | @param fx registered service name |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | @type str |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | @param cancelled reference to function checking for a cancellation |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | @type function |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | try: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | NumberOfProcesses = multiprocessing.cpu_count() |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | if NumberOfProcesses >= 1: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | NumberOfProcesses -= 1 |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | except NotImplementedError: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | NumberOfProcesses = 1 |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | # Create queues |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | taskQueue = multiprocessing.Queue() |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | doneQueue = multiprocessing.Queue() |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | # Submit tasks (initially two time number of processes |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | initialTasks = 2 * NumberOfProcesses |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | for task in argumentsList[:initialTasks]: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | taskQueue.put(task) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | # Start worker processes |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | for i in range(NumberOfProcesses): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | .start() |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | # Get and send results |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | endIndex = len(argumentsList) - initialTasks |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | for i in range(len(argumentsList)): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | filename, result = doneQueue.get() |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | send(fx, filename, result) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | if cancelled(): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | # just exit the loop ignoring the results of queued tasks |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | break |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | if i < endIndex: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | taskQueue.put(argumentsList[i + initialTasks]) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | # Tell child processes to stop |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | for i in range(NumberOfProcesses): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | taskQueue.put('STOP') |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | def worker(input, output): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | Module function acting as the parallel worker for the style check. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | @param input input queue |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | @type multiprocessing.Queue |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | @param output output queue |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | @type multiprocessing.Queue |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | for filename, source, type_ in iter(input.get, 'STOP'): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | if type_ == "raw": |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | result = __rawCodeMetrics(filename, source) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | else: |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | result = [] |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | output.put((filename, result)) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | def __rawCodeMetrics(file, text=""): |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | Private function to calculate the raw code metrics for one Python file. |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | @param file source filename |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | @type str |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | @param text source text |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | @type str |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | @return tuple containing the result list |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | @rtype (list) |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | """ |
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | from radon.raw import analyze |
4
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
130 | try: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
131 | res = __raw2Dict(analyze(text)) |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
132 | except Exception as err: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
133 | res = {"error": str(err)} |
3
7150ed890fd5
Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | return (res, ) |
4
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
135 | |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
136 | |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
137 | def __raw2Dict(obj): |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
138 | """ |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
139 | Private function to convert an object holding raw analysis results into a |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
140 | dictionary. |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
141 | |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
142 | @param obj object as returned from analyze() |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
143 | @type radon.raw.Module |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
144 | @return conversion result |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
145 | @rtype dict |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
146 | """ |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
147 | result = {} |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
148 | for a in obj._fields: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
149 | v = getattr(obj, a, None) |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
150 | if v is not None: |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
151 | result[a] = v |
9ac53bf21182
Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
152 | return result |