def from_json()

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