Index: tools/telemetry/telemetry/internal/results/chart_json_output_formatter.py |
diff --git a/tools/telemetry/telemetry/internal/results/chart_json_output_formatter.py b/tools/telemetry/telemetry/internal/results/chart_json_output_formatter.py |
deleted file mode 100644 |
index a3855ee41e1ababe36689b61607fb5fda9d58411..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/internal/results/chart_json_output_formatter.py |
+++ /dev/null |
@@ -1,83 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import collections |
-import itertools |
-import json |
- |
-from telemetry.internal.results import output_formatter |
-from telemetry.value import summary as summary_module |
- |
-def ResultsAsChartDict(benchmark_metadata, page_specific_values, |
- summary_values): |
- """Produces a dict for serialization to Chart JSON format from raw values. |
- |
- Chart JSON is a transformation of the basic Telemetry JSON format that |
- removes the page map, summarizes the raw values, and organizes the results |
- by chart and trace name. This function takes the key pieces of data needed to |
- perform this transformation (namely, lists of values and a benchmark metadata |
- object) and processes them into a dict which can be serialized using the json |
- module. |
- |
- Design doc for schema: http://goo.gl/kOtf1Y |
- |
- Args: |
- page_specific_values: list of page-specific values |
- summary_values: list of summary values |
- benchmark_metadata: a benchmark.BenchmarkMetadata object |
- |
- Returns: |
- A Chart JSON dict corresponding to the given data. |
- """ |
- summary = summary_module.Summary(page_specific_values) |
- values = itertools.chain( |
- summary.interleaved_computed_per_page_values_and_summaries, |
- summary_values) |
- charts = collections.defaultdict(dict) |
- |
- for value in values: |
- if value.page: |
- chart_name, trace_name = (value.GetChartAndTraceNameForPerPageResult()) |
- else: |
- chart_name, trace_name = ( |
- value.GetChartAndTraceNameForComputedSummaryResult(None)) |
- if chart_name == trace_name: |
- trace_name = 'summary' |
- |
- if value.tir_label: |
- chart_name = value.tir_label + '@@' + chart_name |
- |
- # This intentionally overwrites the trace if it already exists because this |
- # is expected of output from the buildbots currently. |
- # See: crbug.com/413393 |
- charts[chart_name][trace_name] = value.AsDict() |
- |
- result_dict = { |
- 'format_version': '0.1', |
- 'next_version': '0.2', |
- # TODO(sullivan): benchmark_name, benchmark_description, and |
- # trace_rerun_options should be removed when incrementing format_version |
- # to 0.1. |
- 'benchmark_name': benchmark_metadata.name, |
- 'benchmark_description': benchmark_metadata.description, |
- 'trace_rerun_options': benchmark_metadata.rerun_options, |
- 'benchmark_metadata': benchmark_metadata.AsDict(), |
- 'charts': charts, |
- } |
- |
- return result_dict |
- |
-# TODO(eakuefner): Transition this to translate Telemetry JSON. |
-class ChartJsonOutputFormatter(output_formatter.OutputFormatter): |
- def __init__(self, output_stream, benchmark_metadata): |
- super(ChartJsonOutputFormatter, self).__init__(output_stream) |
- self._benchmark_metadata = benchmark_metadata |
- |
- def Format(self, page_test_results): |
- json.dump(ResultsAsChartDict( |
- self._benchmark_metadata, |
- page_test_results.all_page_specific_values, |
- page_test_results.all_summary_values), |
- self.output_stream, indent=2) |
- self.output_stream.write('\n') |