variance-analysis/mach_perftest_notebook_dev/perftestnotebook/customtransforms/custom_test1.py (28 lines of code) (raw):

from perftestnotebook.transformer import Transformer class Testing(Transformer): entry_number = 0 def merge(self, data): # Merge data from all subtests grouped_data = {} for entry in data: # print(entry) subtest = entry["subtest"] if subtest not in grouped_data: grouped_data[subtest] = [] grouped_data[subtest].append(entry) merged_data = [] for subtest in grouped_data: data = [(entry["xaxis"], entry["data"]) for entry in grouped_data[subtest]] dsorted = sorted(data, key=lambda t: t[0]) merged = {"data": [], "xaxis": []} for xval, val in dsorted: merged["data"].append(val) merged["xaxis"].append(xval) merged["subtest"] = subtest merged_data.append(merged) self.entry_number = 0 return merged_data def transform(self, data): ret = [] self.entry_number += 1 for field, val in data.items(): ret.append({"data": val, "xaxis": self.entry_number, "subtest": field}) return ret