summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMac Mollison <mollison@cs.unc.edu>2009-02-24 17:05:59 -0500
committerMac Mollison <mollison@cs.unc.edu>2009-02-24 17:05:59 -0500
commit150cdb350f75dc86bd6be23c6eb37719dc61d3cf (patch)
tree9d29982278b641011242af0bf21b54b8d6f0ce9c
parent7b8659ca348e02403e5d2681e268140a78cc959d (diff)
Added != as a filter comparator
-rwxr-xr-xsta.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/sta.py b/sta.py
index 4ff6414..6ff6b51 100755
--- a/sta.py
+++ b/sta.py
@@ -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
92class StNameData: 97class 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
125class StSwitchAwayData: 129class 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
138class StBlockData: 141class 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
145class StResumeData: 147class 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
152class StSysReleaseData: 153class StSysReleaseData:
153 format = 'LL' 154 format = 'LL'
154 formatStr = struct.Struct(StHeader.format + format) 155 formatStr = struct.Struct(StHeader.format + format)