Index: tools/telemetry/telemetry/results/csv_page_measurement_results.py |
diff --git a/tools/telemetry/telemetry/results/csv_page_measurement_results.py b/tools/telemetry/telemetry/results/csv_page_measurement_results.py |
index 595b651dc10cb09585e424b94cc1152575330f11..8d396354423704e09df5d9fdbac4db241c5e6c66 100644 |
--- a/tools/telemetry/telemetry/results/csv_page_measurement_results.py |
+++ b/tools/telemetry/telemetry/results/csv_page_measurement_results.py |
@@ -1,6 +1,7 @@ |
# 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 csv |
from telemetry.results import page_measurement_results |
@@ -9,36 +10,13 @@ from telemetry.value import merge_values |
class CsvPageMeasurementResults( |
page_measurement_results.PageMeasurementResults): |
- def __init__(self, output_stream, output_after_every_page=None): |
+ def __init__(self, output_stream): |
super(CsvPageMeasurementResults, self).__init__(output_stream) |
self._results_writer = csv.writer(self._output_stream) |
- self._did_output_header = False |
- self._header_names_written_to_writer = None |
- self._output_after_every_page = output_after_every_page |
- |
- def DidMeasurePage(self): |
- try: |
- assert self.page_specific_values_for_current_page != None |
- |
- values = self.page_specific_values_for_current_page |
- if not values or not self._output_after_every_page: |
- # Do not output if no results were added on this page or if output flag |
- # is not set. |
- return |
- |
- if not self._did_output_header: |
- self._OutputHeader(values) |
- else: |
- self._ValidateOutputNamesForCurrentPage() |
- self._OutputValuesForPage(values[0].page, values) |
- finally: |
- super(CsvPageMeasurementResults, self).DidMeasurePage() |
+ self._representative_value_names = None |
def PrintSummary(self): |
try: |
- if self._output_after_every_page: |
- return |
- |
values = merge_values.MergeLikeValuesFromSamePage( |
self.all_page_specific_values) |
self._OutputHeader(values) |
@@ -49,18 +27,6 @@ class CsvPageMeasurementResults( |
finally: |
super(CsvPageMeasurementResults, self).PrintSummary() |
- def _ValidateOutputNamesForCurrentPage(self): |
- assert self._did_output_header |
- current_page_value_names = set([ |
- value.name for value in self.page_specific_values_for_current_page]) |
- header_names_written_to_writer = set(self._header_names_written_to_writer) |
- assert header_names_written_to_writer >= current_page_value_names, \ |
- """To use CsvPageMeasurementResults, you must add the same |
-result names for every page. In this case, the following extra results were |
-added: |
-%s |
-""" % (current_page_value_names - header_names_written_to_writer) |
- |
def _OutputHeader(self, values): |
"""Output the header rows. |
@@ -74,19 +40,17 @@ added: |
values: A set of values from which to extract the header string, |
which is the value name and the units. |
""" |
- assert not self._did_output_header |
- representative_value_names = {} |
+ representative_values = {} |
for value in values: |
- if value.name not in representative_value_names: |
- representative_value_names[value.name] = value |
- self._did_output_header = True |
- self._header_names_written_to_writer = list( |
- representative_value_names.keys()) |
- self._header_names_written_to_writer.sort() |
+ if value.name not in representative_values: |
+ representative_values[value.name] = value |
+ self._representative_value_names = list( |
+ representative_values.keys()) |
+ self._representative_value_names.sort() |
row = ['page_name'] |
- for value_name in self._header_names_written_to_writer: |
- units = representative_value_names[value_name].units |
+ for value_name in self._representative_value_names: |
+ units = representative_values[value_name].units |
row.append('%s (%s)' % (value_name, units)) |
self._results_writer.writerow(row) |
self._output_stream.flush() |
@@ -97,7 +61,7 @@ added: |
for value in page_values: |
values_by_value_name[value.name] = value |
- for value_name in self._header_names_written_to_writer: |
+ for value_name in self._representative_value_names: |
value = values_by_value_name.get(value_name, None) |
if value and value.GetRepresentativeNumber(): |
row.append('%s' % value.GetRepresentativeNumber()) |