in otava/series.py [0:0]
def from_json(cls, analyzed_json):
new_metrics = {}
for metric_name, unit in analyzed_json["metrics"].items():
new_metrics[metric_name] = Metric(None, None, unit)
new_series = Series(
analyzed_json["test_name"],
analyzed_json["branch_name"],
analyzed_json["time"],
new_metrics,
analyzed_json["data"],
analyzed_json["attributes"]
)
new_options = AnalysisOptions()
new_options.window_len = analyzed_json["options"]["window_len"]
new_options.max_pvalue = analyzed_json["options"]["max_pvalue"]
new_options.min_magnitude = analyzed_json["options"]["min_magnitude"]
new_options.orig_edivisive = analyzed_json["options"]["orig_edivisive"]
new_change_points = {}
for metric, change_points in analyzed_json["change_points"].items():
new_list = list()
for cp in change_points:
stat = ComparativeStats(cp["mean_before"], cp["mean_after"], cp["stddev_before"],
cp["stddev_after"], cp["pvalue"])
new_list.append(
ChangePoint(
index=cp["index"], time=cp["time"], metric=cp["metric"], stats=stat
)
)
new_change_points[metric] = new_list
new_weak_change_points = {}
for metric, change_points in analyzed_json.get("weak_change_points", {}).items():
new_list = list()
for cp in change_points:
stat = ComparativeStats(cp["mean_before"], cp["mean_after"], cp["stddev_before"],
cp["stddev_after"], cp["pvalue"])
new_list.append(
ChangePoint(
index=cp["index"], time=cp["time"], metric=cp["metric"], stats=stat
)
)
new_weak_change_points[metric] = new_list
analyzed_series = cls(new_series, new_options, new_change_points)
analyzed_series.weak_change_points = new_weak_change_points
if "change_points_timestamp" in analyzed_json.keys():
analyzed_series.change_points_timestamp = analyzed_json["change_points_timestamp"]
analyzed_series.change_points_by_time = AnalyzedSeries.__group_change_points_by_time(analyzed_series.__series, analyzed_series.change_points)
return analyzed_series