Stefan Schuermans commited on 2020-11-08 14:40:44
Showing 4 changed files, with 22 additions and 12 deletions.
... | ... |
@@ -24,7 +24,7 @@ from gi.repository import Gdk, Gtk, GLib |
24 | 24 |
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, Gtk.main_quit) |
25 | 25 |
|
26 | 26 |
# regular expression for an environment variable assignment |
27 |
-re_env_var = re.compile(r'^(?P<name>[A-Za-z_][A-Za-z0-9_]*)=(?P<value>.*)$') |
|
27 |
+RE_ENV_VAR = re.compile(r'^(?P<name>[A-Za-z_][A-Za-z0-9_]*)=(?P<value>.*)$') |
|
28 | 28 |
|
29 | 29 |
|
30 | 30 |
def add_none(val_a: int, val_b: int) -> int: |
... | ... |
@@ -45,19 +45,19 @@ def cmdline2str(cmdline: list) -> str: |
45 | 45 |
return ' '.join([cmdline_str_escape(s) for s in cmdline]) |
46 | 46 |
|
47 | 47 |
|
48 |
-def cmdline_str_escape(s: str) -> str: |
|
48 |
+def cmdline_str_escape(string: str) -> str: |
|
49 | 49 |
""" |
50 | 50 |
Escape a command line string for shell use in a way that also works for |
51 | 51 |
environment variables (i.e., not escaping the variable name). |
52 | 52 |
""" |
53 |
- m = re_env_var.match(s) |
|
54 |
- if not m: |
|
53 |
+ match = RE_ENV_VAR.match(string) |
|
54 |
+ if not match: |
|
55 | 55 |
# not a variable assignment -> escape entire string |
56 |
- return shlex.quote(s) |
|
56 |
+ return shlex.quote(string) |
|
57 | 57 |
# variable assignment -> escape only value part |
58 | 58 |
# (also works if it only looks like a variable assignment) |
59 |
- name = m.group('name') |
|
60 |
- value = shlex.quote(m.group('value')) |
|
59 |
+ name = match.group('name') |
|
60 |
+ value = shlex.quote(match.group('value')) |
|
61 | 61 |
return f'{name:s}={value:s}' |
62 | 62 |
|
63 | 63 |
|
... | ... |
@@ -148,6 +148,8 @@ class UptGui: |
148 | 148 |
Graphical user interface of UProcTrace. |
149 | 149 |
""" |
150 | 150 |
|
151 |
+ # pylint: disable=R0902 |
|
152 |
+ |
|
151 | 153 |
DETAIL_PROC_ID = 0 |
152 | 154 |
DETAIL_KEY = 1 |
153 | 155 |
DETAIL_VALUE = 2 |
... | ... |
@@ -280,6 +280,12 @@ class Processes(uproctrace.parse.Visitor): |
280 | 280 |
""" |
281 | 281 |
return self._toplevel_processes.copy() |
282 | 282 |
|
283 |
+ def getAllProcesses(self) -> dict: |
|
284 |
+ """ |
|
285 |
+ Return all processes. |
|
286 |
+ """ |
|
287 |
+ return self._all_processes.copy() |
|
288 |
+ |
|
283 | 289 |
def getProcess(self, proc_id: int): |
284 | 290 |
""" |
285 | 291 |
Return process with proc_id, or None if not found. |
... | ... |
@@ -34,13 +34,14 @@ def calculate_stats(upt_traces: list) -> dict: |
34 | 34 |
for upt_trace in upt_traces: |
35 | 35 |
|
36 | 36 |
# Load all processes of the trace file |
37 |
- with open(upt_trace, "rb") as f: |
|
38 |
- processes = uproctrace.processes.Processes(f) |
|
37 |
+ with open(upt_trace, "rb") as upt_f: |
|
38 |
+ processes = uproctrace.processes.Processes(upt_f) |
|
39 | 39 |
|
40 |
- for process in processes._all_processes.values(): |
|
40 |
+ for process in processes.getAllProcesses().values(): |
|
41 | 41 |
|
42 | 42 |
# Ignore processes for which we do not have full information |
43 |
- if process._begin is None or process._end is None: |
|
43 |
+ if process.getBeginTimestamp() is None or process.getEndTimestamp( |
|
44 |
+ ) is None: |
|
44 | 45 |
continue |
45 | 46 |
|
46 | 47 |
# Update the values |
... | ... |
@@ -50,7 +51,7 @@ def calculate_stats(upt_traces: list) -> dict: |
50 | 51 |
# Calulate the statistics |
51 | 52 |
stats = dict() |
52 | 53 |
for attr, values in attr_values.items(): |
53 |
- if len(values) == 0: |
|
54 |
+ if not values: |
|
54 | 55 |
stats[attr] = (0, 0, 0, 0) |
55 | 56 |
continue |
56 | 57 |
|