summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMac Mollison <mollison@cs.unc.edu>2010-03-26 13:08:32 -0400
committerMac Mollison <mollison@cs.unc.edu>2010-03-26 13:08:32 -0400
commita7bf26bd5597661b51c42e34ad2fad4c315b8aed (patch)
tree8f6e16a8c8a8884336d36be9bab15dd3081f5562
parent7dd68f20059d8aecbecf475042e7337129088428 (diff)
Enable filter by ID instead of time
Filtering by time is too cumbersome (because time values are so large), so we give each event record an ID and filter by that instead in in the earliest and latest modules.
-rw-r--r--unit_trace/earliest.py2
-rw-r--r--unit_trace/latest.py2
-rw-r--r--unit_trace/stdout_printer.py1
-rw-r--r--unit_trace/trace_reader.py7
4 files changed, 10 insertions, 2 deletions
diff --git a/unit_trace/earliest.py b/unit_trace/earliest.py
index 2d963dc..03e08d7 100644
--- a/unit_trace/earliest.py
+++ b/unit_trace/earliest.py
@@ -11,7 +11,7 @@
11def earliest(stream, earliest): 11def earliest(stream, earliest):
12 for record in stream: 12 for record in stream:
13 if record.record_type=="event": 13 if record.record_type=="event":
14 if record.when < earliest: 14 if record.id < earliest:
15 pass 15 pass
16 else: 16 else:
17 yield record 17 yield record
diff --git a/unit_trace/latest.py b/unit_trace/latest.py
index 4abd3a2..38676a0 100644
--- a/unit_trace/latest.py
+++ b/unit_trace/latest.py
@@ -11,7 +11,7 @@
11def latest(stream, latest): 11def latest(stream, latest):
12 for record in stream: 12 for record in stream:
13 if record.record_type=="event": 13 if record.record_type=="event":
14 if record.when > latest: 14 if record.id > latest:
15 break 15 break
16 else: 16 else:
17 yield record 17 yield record
diff --git a/unit_trace/stdout_printer.py b/unit_trace/stdout_printer.py
index 8842b71..d242bb6 100644
--- a/unit_trace/stdout_printer.py
+++ b/unit_trace/stdout_printer.py
@@ -27,6 +27,7 @@ def stdout_printer(stream):
27############################################################################### 27###############################################################################
28 28
29def _print_event(record): 29def _print_event(record):
30 print "ID: %d" % (record.id)
30 print "Job: %d.%d" % (record.pid,record.job) 31 print "Job: %d.%d" % (record.pid,record.job)
31 print "Type: %s" % (record.type_name) 32 print "Type: %s" % (record.type_name)
32 print "Time: %d" % (record.when) 33 print "Time: %d" % (record.when)
diff --git a/unit_trace/trace_reader.py b/unit_trace/trace_reader.py
index 3cbce17..5cfbbe3 100644
--- a/unit_trace/trace_reader.py
+++ b/unit_trace/trace_reader.py
@@ -75,6 +75,9 @@ def trace_reader(files):
75 # fatally if they are not. 75 # fatally if they are not.
76 last_time = None 76 last_time = None
77 77
78 # We want to give records ID numbers so users can filter by ID
79 id = 0
80
78 # Keep pulling records as long as we have a buffer 81 # Keep pulling records as long as we have a buffer
79 while len(file_iter_buff) > 0: 82 while len(file_iter_buff) > 0:
80 83
@@ -109,6 +112,10 @@ def trace_reader(files):
109 else: 112 else:
110 last_time = earliest.when 113 last_time = earliest.when
111 114
115 # Give the record an id number
116 id += 1
117 earliest.id = id
118
112 # Yield the record 119 # Yield the record
113 yield earliest 120 yield earliest
114 121