diff options
author | Mac Mollison <mollison@cs.unc.edu> | 2009-02-24 17:05:59 -0500 |
---|---|---|
committer | Mac Mollison <mollison@cs.unc.edu> | 2009-02-24 17:05:59 -0500 |
commit | 150cdb350f75dc86bd6be23c6eb37719dc61d3cf (patch) | |
tree | 9d29982278b641011242af0bf21b54b8d6f0ce9c | |
parent | 7b8659ca348e02403e5d2681e268140a78cc959d (diff) |
Added != as a filter comparator
-rwxr-xr-x | sta.py | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -44,9 +44,9 @@ class Trace: | |||
44 | def filter(self, criteria): | 44 | def filter(self, criteria): |
45 | """Apply a filter to the trace""" | 45 | """Apply a filter to the trace""" |
46 | 46 | ||
47 | #Determine if they want to filter by >, <, or == | 47 | #Determine if they want to filter by >, <, !=, or == |
48 | comp = None | 48 | comp = None |
49 | seps = ['>','<','=='] | 49 | seps = ['>','<','==','!='] |
50 | for sep in seps: | 50 | for sep in seps: |
51 | if criteria.find(sep) > 0: | 51 | if criteria.find(sep) > 0: |
52 | comp = sep | 52 | comp = sep |
@@ -71,9 +71,15 @@ class Trace: | |||
71 | """Return the number of records in the trace""" | 71 | """Return the number of records in the trace""" |
72 | return len(list(self.iter)) | 72 | return len(list(self.iter)) |
73 | 73 | ||
74 | def sort(self, func): | 74 | #Needs to be tested/finished |
75 | def sort(self, key): | ||
75 | """Return the records sorted by some key""" | 76 | """Return the records sorted by some key""" |
76 | self.iter = sorted(self.iter, key=func) | 77 | def sortfunc(record): |
78 | if key in record: | ||
79 | return record[key] | ||
80 | else: | ||
81 | return 0 | ||
82 | self.iter = sorted(self.iter, key=sortfunc) | ||
77 | 83 | ||
78 | 84 | ||
79 | #################################### | 85 | #################################### |
@@ -88,7 +94,6 @@ class StHeader: | |||
88 | keys = ['type','cpu','pid','job'] | 94 | keys = ['type','cpu','pid','job'] |
89 | message = 'The header.' | 95 | message = 'The header.' |
90 | 96 | ||
91 | |||
92 | class StNameData: | 97 | class StNameData: |
93 | format = '16s' | 98 | format = '16s' |
94 | formatStr = struct.Struct(StHeader.format + format) | 99 | formatStr = struct.Struct(StHeader.format + format) |
@@ -121,7 +126,6 @@ class StSwitchToData: | |||
121 | keys = StHeader.keys + ['when','exec_time'] | 126 | keys = StHeader.keys + ['when','exec_time'] |
122 | message = 'A process was switched to on a given CPU.' | 127 | message = 'A process was switched to on a given CPU.' |
123 | 128 | ||
124 | |||
125 | class StSwitchAwayData: | 129 | class StSwitchAwayData: |
126 | format = 'LI' | 130 | format = 'LI' |
127 | formatStr = struct.Struct(StHeader.format + format) | 131 | formatStr = struct.Struct(StHeader.format + format) |
@@ -134,21 +138,18 @@ class StCompletionData: | |||
134 | keys = StHeader.keys + ['when','forced?','flags'] | 138 | keys = StHeader.keys + ['when','forced?','flags'] |
135 | message = 'A job completed.' | 139 | message = 'A job completed.' |
136 | 140 | ||
137 | |||
138 | class StBlockData: | 141 | class StBlockData: |
139 | format = 'L' | 142 | format = 'L' |
140 | formatStr = struct.Struct(StHeader.format + format) | 143 | formatStr = struct.Struct(StHeader.format + format) |
141 | keys = StHeader.keys + ['when'] | 144 | keys = StHeader.keys + ['when'] |
142 | message = 'A task blocks.' | 145 | message = 'A task blocks.' |
143 | 146 | ||
144 | |||
145 | class StResumeData: | 147 | class StResumeData: |
146 | format = 'L' | 148 | format = 'L' |
147 | formatStr = struct.Struct(StHeader.format + format) | 149 | formatStr = struct.Struct(StHeader.format + format) |
148 | keys = StHeader.keys + ['when'] | 150 | keys = StHeader.keys + ['when'] |
149 | message = 'A task resumes.' | 151 | message = 'A task resumes.' |
150 | 152 | ||
151 | |||
152 | class StSysReleaseData: | 153 | class StSysReleaseData: |
153 | format = 'LL' | 154 | format = 'LL' |
154 | formatStr = struct.Struct(StHeader.format + format) | 155 | formatStr = struct.Struct(StHeader.format + format) |