提交 605adead authored 作者: Frederic Bastien's avatar Frederic Bastien

Small refactor to lower duplicate code

上级 96178b8f
...@@ -2493,62 +2493,28 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -2493,62 +2493,28 @@ class EquilibriumOptimizer(NavigatorOptimizer):
process_count[process] += count process_count[process] += count
else: else:
process_count[process] = count process_count[process] = count
iter_global_sub_profs = []
iter_final_sub_profs = [] def merge(opts, attr, idx):
iter_cleanup_sub_profs = [] tmp = []
for opt in global_optimizers: for opt in opts:
o1 = prof1[0].global_optimizers o1 = getattr(prof1[0], attr)
o2 = prof2[0].global_optimizers o2 = getattr(prof2[0], attr)
if opt in o1 and opt in o2: if opt in o1 and opt in o2:
p1 = prof1[9][i][o1.index(opt)] p1 = prof1[idx][i][o1.index(opt)]
p2 = prof2[9][i][o2.index(opt)] p2 = prof2[idx][i][o2.index(opt)]
if hasattr(opt, 'merge_profile'):
m = opt.merge_profile(p1, p2)
else:
m = None m = None
iter_global_sub_profs.append(m) if hasattr(opt, 'merge_profile'):
elif opt in o1: m = opt.merge_profile(p1, p2)
p1 = prof1[9][i][o1.index(opt)] elif opt in o1:
iter_global_sub_profs.append(p1) m = prof1[idx][i][o1.index(opt)]
else:
p2 = prof2[9][i][o2.index(opt)]
iter_global_sub_profs.append(p2)
for opt in final_optimizers:
o1 = prof1[0].final_optimizers
o2 = prof2[0].final_optimizers
if opt in o1 and opt in o2:
p1 = prof1[10][i][o1.index(opt)]
p2 = prof2[10][i][o2.index(opt)]
if hasattr(opt, 'merge_profile'):
m = opt.merge_profile(p1, p2)
else: else:
m = None m = prof2[idx][i][o2.index(opt)]
iter_final_sub_profs.append(m) tmp.append(m)
elif opt in o1: return tmp
p1 = prof1[10][i][o1.index(opt)] t = merge(global_optimizers, 'global_optimizers', 9)
iter_final_sub_profs.append(p1) global_sub_profs.append(merge(global_optimizers, 'global_optimizers', 9))
else: final_sub_profs.append(merge(final_optimizers, 'final_optimizers', 10))
p2 = prof2[10][i][o2.index(opt)] cleanup_sub_profs.append(merge(cleanup_optimizers, 'cleanup_optimizers', 11))
iter_final_sub_profs.append(p2)
for opt in cleanup_optimizers:
o1 = prof1[0].cleanup_optimizers
o2 = prof2[0].cleanup_optimizers
if opt in o1 and opt in o2:
p1 = prof1[11][i][o1.index(opt)]
p2 = prof2[11][i][o2.index(opt)]
iter_cleanup_sub_profs.append(
opt.merge_profile(p1, p2))
elif opt in o1:
p1 = prof1[11][i][o1.index(opt)]
iter_cleanup_sub_profs.append(p1)
else:
p2 = prof2[11][i][o2.index(opt)]
iter_cleanup_sub_profs.append(p2)
global_sub_profs.append(iter_global_sub_profs)
final_sub_profs.append(iter_final_sub_profs)
cleanup_sub_profs.append(iter_cleanup_sub_profs)
loop_process_count.extend(prof2[2][len(loop_process_count):]) loop_process_count.extend(prof2[2][len(loop_process_count):])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论