Skip to content

Commit 04af20b

Browse files
committed
[process-stats-dir] Use less tedious strategy for passing args to jobstats.
1 parent 490f577 commit 04af20b

File tree

2 files changed

+19
-67
lines changed

2 files changed

+19
-67
lines changed

utils/jobstats/jobstats.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def to_lnt_test_obj(self, args):
160160

161161

162162
def load_stats_dir(path, select_module=[], select_stat=[],
163-
exclude_timers=False):
163+
exclude_timers=False, **kwargs):
164164
"""Loads all stats-files found in path into a list of JobStats objects"""
165165
jobstats = []
166166
auxpat = (r"(?P<module>[^-]+)-(?P<input>[^-]+)-(?P<triple>[^-]+)" +
@@ -213,7 +213,8 @@ def load_stats_dir(path, select_module=[], select_stat=[],
213213
return jobstats
214214

215215

216-
def merge_all_jobstats(jobstats, select_module=[], group_by_module=False):
216+
def merge_all_jobstats(jobstats, select_module=[], group_by_module=False,
217+
**kwargs):
217218
"""Does a pairwise merge of the elements of list of jobs"""
218219
m = None
219220
if len(select_module) > 0:

utils/process-stats-dir.py

Lines changed: 16 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,15 @@
3636
def load_paired_stats_dirs(args):
3737
assert(len(args.remainder) == 2)
3838
paired_stats = []
39-
mod = args.select_module
40-
stat = args.select_stat
41-
xt = args.exclude_timers
4239
(old, new) = args.remainder
4340
for p in sorted(os.listdir(old)):
4441
full_old = os.path.join(old, p)
4542
full_new = os.path.join(new, p)
4643
if not (os.path.exists(full_old) and os.path.isdir(full_old) and
4744
os.path.exists(full_new) and os.path.isdir(full_new)):
4845
continue
49-
old_stats = load_stats_dir(full_old,
50-
select_module=mod,
51-
select_stat=stat,
52-
exclude_timers=xt)
53-
new_stats = load_stats_dir(full_new,
54-
select_module=mod,
55-
select_stat=stat,
56-
exclude_timers=xt)
46+
old_stats = load_stats_dir(full_old, **vars(args))
47+
new_stats = load_stats_dir(full_new, **vars(args))
5748
if len(old_stats) == 0 or len(new_stats) == 0:
5849
continue
5950
paired_stats.append((p, (old_stats, new_stats)))
@@ -63,22 +54,14 @@ def load_paired_stats_dirs(args):
6354
def write_catapult_trace(args):
6455
allstats = []
6556
for path in args.remainder:
66-
allstats += load_stats_dir(path,
67-
select_module=args.select_module,
68-
select_stat=args.select_stat,
69-
exclude_timers=args.exclude_timers)
57+
allstats += load_stats_dir(path, **vars(args))
7058
json.dump([s.to_catapult_trace_obj() for s in allstats], args.output)
7159

7260

7361
def write_lnt_values(args):
7462
for d in args.remainder:
75-
stats = load_stats_dir(d,
76-
select_module=args.select_module,
77-
select_stat=args.select_stat,
78-
exclude_timers=args.exclude_timers)
79-
merged = merge_all_jobstats(stats,
80-
select_module=args.select_module,
81-
group_by_module=args.group_by_module)
63+
stats = load_stats_dir(d, **vars(args))
64+
merged = merge_all_jobstats(stats, **vars(args))
8265
j = merged.to_lnt_test_obj(args)
8366
if args.lnt_submit is None:
8467
json.dump(j, args.output, indent=4)
@@ -107,16 +90,11 @@ def show_paired_incrementality(args):
10790
out = csv.DictWriter(args.output, fieldnames, dialect='excel-tab')
10891
out.writeheader()
10992

110-
sel = args.select_module
11193
for (name, (oldstats, newstats)) in load_paired_stats_dirs(args):
11294
olddriver = merge_all_jobstats((x for x in oldstats
113-
if x.is_driver_job()),
114-
select_module=sel,
115-
group_by_module=args.group_by_module)
95+
if x.is_driver_job()), **vars(args))
11696
newdriver = merge_all_jobstats((x for x in newstats
117-
if x.is_driver_job()),
118-
select_module=sel,
119-
group_by_module=args.group_by_module)
97+
if x.is_driver_job()), **vars(args))
12098
if olddriver is None or newdriver is None:
12199
continue
122100
oldpct = olddriver.incrementality_percentage()
@@ -137,10 +115,7 @@ def show_incrementality(args):
137115
out.writeheader()
138116

139117
for path in args.remainder:
140-
stats = load_stats_dir(path,
141-
select_module=args.select_module,
142-
select_stat=args.select_stat,
143-
exclude_timers=args.exclude_timers)
118+
stats = load_stats_dir(path, **vars(args))
144119
for s in stats:
145120
if s.is_driver_job():
146121
pct = s.incrementality_percentage()
@@ -223,16 +198,9 @@ def set_csv_baseline(args):
223198
with open(args.set_csv_baseline, "wb") as f:
224199
out = csv.DictWriter(f, fieldnames, dialect='excel-tab',
225200
quoting=csv.QUOTE_NONNUMERIC)
226-
mod = args.select_module
227-
stat = args.select_stat
228-
xt = args.exclude_timers
229201
m = merge_all_jobstats((s for d in args.remainder
230-
for s in load_stats_dir(d,
231-
select_module=mod,
232-
select_stat=stat,
233-
exclude_timers=xt)),
234-
select_module=mod,
235-
group_by_module=args.group_by_module)
202+
for s in load_stats_dir(d, **vars(args))),
203+
**vars(args))
236204
if m is None:
237205
print "no stats found"
238206
return 1
@@ -306,16 +274,9 @@ def write_comparison(args, old_stats, new_stats):
306274

307275
def compare_to_csv_baseline(args):
308276
old_stats = read_stats_dict_from_csv(args.compare_to_csv_baseline)
309-
mod = args.select_module
310-
stat = args.select_stat
311-
xt = args.exclude_timers
312277
m = merge_all_jobstats((s for d in args.remainder
313-
for s in load_stats_dir(d,
314-
select_module=mod,
315-
select_stat=stat,
316-
exclude_timers=xt)),
317-
select_module=mod,
318-
group_by_module=args.group_by_module)
278+
for s in load_stats_dir(d, **vars(args))),
279+
**vars(args))
319280
old_stats = dict((k, v) for (k, (_, v)) in old_stats.items())
320281
new_stats = m.stats
321282

@@ -328,20 +289,10 @@ def compare_stats_dirs(args):
328289
raise ValueError("Expected exactly 2 stats-dirs")
329290

330291
(old, new) = args.remainder
331-
old_stats = merge_all_jobstats(
332-
load_stats_dir(old,
333-
select_module=args.select_module,
334-
select_stat=args.select_stat,
335-
exclude_timers=args.exclude_timers),
336-
select_module=args.select_module,
337-
group_by_module=args.group_by_module)
338-
new_stats = merge_all_jobstats(
339-
load_stats_dir(new,
340-
select_module=args.select_module,
341-
select_stat=args.select_stat,
342-
exclude_timers=args.exclude_timers),
343-
select_module=args.select_module,
344-
group_by_module=args.group_by_module)
292+
old_stats = merge_all_jobstats(load_stats_dir(old, **vars(args)),
293+
**vars(args))
294+
new_stats = merge_all_jobstats(load_stats_dir(new, **vars(args)),
295+
**vars(args))
345296

346297
return write_comparison(args, old_stats.stats, new_stats.stats)
347298

0 commit comments

Comments
 (0)