diff --git a/src/execo_engine/utils.py b/src/execo_engine/utils.py index 389d4830ff3c14786debebf619a448c61e8f1c0e..16f57319d7baa487dcbe8df4bca22a4cbe769415 100644 --- a/src/execo_engine/utils.py +++ b/src/execo_engine/utils.py @@ -500,49 +500,54 @@ class ParamSweeper(object): return counts with self.__lock: - total = count(self.get_sweeps()) - remaining = count(self.get_remaining()) - skipped = count(self.get_skipped()) - inprogress = count(self.get_inprogress()) - done = count(self.get_done()) - remaining_ratio = dict() - skipped_ratio = dict() - inprogress_ratio = dict() - done_ratio = dict() - for k1 in total: - remaining_ratio[k1] = dict() - skipped_ratio[k1] = dict() - inprogress_ratio[k1] = dict() - done_ratio[k1] = dict() - for k2 in total[k1]: - if remaining.has_key(k1) and remaining[k1].has_key(k2): - r = remaining[k1][k2] - else: - r = 0 - remaining_ratio[k1][k2] = float(r) / float(total[k1][k2]) - if skipped.has_key(k1) and skipped[k1].has_key(k2): - s = skipped[k1][k2] - else: - s = 0 - skipped_ratio[k1][k2] = float(s) / float(total[k1][k2]) - if inprogress.has_key(k1) and inprogress[k1].has_key(k2): - i = inprogress[k1][k2] - else: - i = 0 - inprogress_ratio[k1][k2] = float(i) / float(total[k1][k2]) - if done.has_key(k1) and done[k1].has_key(k2): - d = done[k1][k2] - else: - d = 0 - done_ratio[k1][k2] = float(d) / float(total[k1][k2]) - return { - "total": total, - "remaining": remaining, - "remaining_ratio": remaining_ratio, - "skipped": skipped, - "skipped_ratio": skipped_ratio, - "inprogress": inprogress, - "inprogress_ratio": inprogress_ratio, - "done": done, - "done_ratio": done_ratio - } + sweeps = self.get_sweeps() + remaining = self.get_remaining() + skipped = self.get_skipped() + inprogress = self.get_inprogress() + done = self.get_done() + ctotal = count(sweeps) + cremaining = count(remaining) + cskipped = count(skipped) + cinprogress = count(inprogress) + cdone = count(done) + remaining_ratio = dict() + skipped_ratio = dict() + inprogress_ratio = dict() + done_ratio = dict() + for k1 in ctotal: + remaining_ratio[k1] = dict() + skipped_ratio[k1] = dict() + inprogress_ratio[k1] = dict() + done_ratio[k1] = dict() + for k2 in ctotal[k1]: + if cremaining.has_key(k1) and cremaining[k1].has_key(k2): + r = cremaining[k1][k2] + else: + r = 0 + remaining_ratio[k1][k2] = float(r) / float(ctotal[k1][k2]) + if cskipped.has_key(k1) and cskipped[k1].has_key(k2): + s = cskipped[k1][k2] + else: + s = 0 + skipped_ratio[k1][k2] = float(s) / float(ctotal[k1][k2]) + if cinprogress.has_key(k1) and cinprogress[k1].has_key(k2): + i = cinprogress[k1][k2] + else: + i = 0 + inprogress_ratio[k1][k2] = float(i) / float(ctotal[k1][k2]) + if cdone.has_key(k1) and cdone[k1].has_key(k2): + d = cdone[k1][k2] + else: + d = 0 + done_ratio[k1][k2] = float(d) / float(ctotal[k1][k2]) + return { + "total": ctotal, + "remaining": cremaining, + "remaining_ratio": remaining_ratio, + "skipped": cskipped, + "skipped_ratio": skipped_ratio, + "inprogress": cinprogress, + "inprogress_ratio": inprogress_ratio, + "done": cdone, + "done_ratio": done_ratio + }