def do_fixup(plan): # single file, no merge, simple rename if len(plan.pickle_files) == 1: dst = join(plan.log_d, '.'.join((PICKLE_NAME, plan.func, "p"))) os.rename(plan.pickle_files[0], dst) print("@RENAME: %s => %s" % (plan.pickle_files[0], dst)) # scattered to multiple files, merge them all else: pathbin = PathBin(plan.log_d).load_from_pickle(plan.func, plan.pickle_files[0]) print("@MERGE: %s " % plan.pickle_files[0]) assert(pathbin) for pickle in plan.pickle_files[1:]: tempbin = PathBin(plan.log_d).load_from_pickle(plan.func, pickle) print("@MERGE: %s " % pickle) assert(tempbin) pathbin.merge(tempbin) pathbin.save_as_pickle() # remove temp. pickle files for pickle in plan.pickle_files: os.remove(pickle) return 0
def do_fixup(plan): # single file, no merge, simple rename if len(plan.pickle_files) == 1: dst = join(plan.log_d, '.'.join((PICKLE_NAME, plan.func, "p"))) os.rename(plan.pickle_files[0], dst) print("@RENAME: %s => %s" % (plan.pickle_files[0], dst)) # scattered to multiple files, merge them all else: pathbin = PathBin(plan.log_d).load_from_pickle(plan.func, plan.pickle_files[0]) print("@MERGE: %s " % plan.pickle_files[0]) assert (pathbin) for pickle in plan.pickle_files[1:]: tempbin = PathBin(plan.log_d).load_from_pickle(plan.func, pickle) print("@MERGE: %s " % pickle) assert (tempbin) pathbin.merge(tempbin) pathbin.save_as_pickle() # remove temp. pickle files for pickle in plan.pickle_files: os.remove(pickle) return 0
def load_pathbin_from_pickle(self, func, pkl_name): if not self.pathbin: self.pathbin = PathBin("", verbose=False) self.pathbin.load_from_pickle(func, pkl_name) return
def load_pathbin(self, log_d): self.pathbin = PathBin(log_d, verbose=False) self.pathbin = self.pathbin.load_pickle() return self if self.pathbin is not None else None
class BaseChecker(object): def __init__(self, pathbin=None): self.pathbin = pathbin self.results = [] self.avg = RangeSetVector() self.avg_distance = 0 self.colors = [] def load_pathbin(self, log_d): self.pathbin = PathBin(log_d, verbose=False) self.pathbin = self.pathbin.load_pickle() return self if self.pathbin is not None else None def load_pathbin_from_pickle(self, func, pkl_name): if not self.pathbin: self.pathbin = PathBin("", verbose=False) self.pathbin.load_from_pickle(func, pkl_name) return def get_rtn_paths(self, func): return self.pathbin[func] def get_rtn_paths_list(self, funcs): rtn_paths_list = [] for func in funcs: rtn_paths = self.pathbin[func] rtn_paths_list.append(rtn_paths) return rtn_paths_list def check(self, funcs): rvs = self._build_vector(funcs) self.avg = calc_average_rsv(rvs) self.avg_distance = 0 for (n, rv) in enumerate(rvs): distance = rv.distance(self.avg) self.results.append([distance, rv]) self.avg_distance += distance self.avg_distance /= float(n + 1) self.results.sort(reverse=True) self._build_color_table() def _build_color_table(self): r4 = (self.results[-1][0] - self.avg_distance) / 2.0 + self.avg_distance r3 = self.avg_distance r2 = (self.results[0][0] - self.avg_distance) / 2.0 + self.avg_distance r1 = self.results[0][0] self.colors = [(r4, Color.OKGREEN, 'O'), (r3, Color.OKBLUE, 'o'), (r2, Color.WARNING, '?'), (r1, Color.FAIL, 'X')] def _get_color_code(self, result): distance = result[0] for (l, c) in enumerate(self.colors): if distance <= c[0]: return (c[1], c[2], l) assert (0) def __repr__(self): return "'%s'" % self def __str__(self): return "%s" % self.results
class BaseChecker(object): def __init__(self, pathbin = None): self.pathbin = pathbin self.results = [] self.avg = RangeSetVector() self.avg_distance = 0 self.colors = [] def load_pathbin(self, log_d): self.pathbin = PathBin(log_d, verbose=False) self.pathbin = self.pathbin.load_pickle() return self if self.pathbin is not None else None def load_pathbin_from_pickle(self, func, pkl_name): if not self.pathbin: self.pathbin = PathBin("", verbose=False) self.pathbin.load_from_pickle(func, pkl_name) return def get_rtn_paths(self, func): return self.pathbin[func] def get_rtn_paths_list(self, funcs): rtn_paths_list = [] for func in funcs: rtn_paths = self.pathbin[func] rtn_paths_list.append(rtn_paths) return rtn_paths_list def check(self, funcs): rvs = self._build_vector(funcs) self.avg = calc_average_rsv(rvs) self.avg_distance = 0 for (n, rv) in enumerate(rvs): distance = rv.distance(self.avg) self.results.append([distance, rv]) self.avg_distance += distance self.avg_distance /= float(n+1) self.results.sort(reverse=True) self._build_color_table() def _build_color_table(self): r4 = (self.results[-1][0] - self.avg_distance) / 2.0 + self.avg_distance r3 = self.avg_distance r2 = (self.results[0][0] - self.avg_distance) / 2.0 + self.avg_distance r1 = self.results[0][0] self.colors = [(r4, Color.OKGREEN, 'O'), (r3, Color.OKBLUE, 'o'), (r2, Color.WARNING, '?'), (r1, Color.FAIL, 'X')] def _get_color_code(self, result): distance = result[0] for (l, c) in enumerate(self.colors): if distance <= c[0]: return (c[1], c[2], l) assert(0) def __repr__(self): return "'%s'" % self def __str__(self): return "%s" % self.results
def do_pickle(plan): pathbin = PathBin(plan.log_d, plan.get_pickle_name()) pathbin.parse_file(plan.fss, plan.start, plan.end) pathbin.save_as_pickle() return 0