1cef7893435aa41160dd1255c43cb8498279738ccChris Craik# Copyright 2014 The Chromium Authors. All rights reserved. 2cef7893435aa41160dd1255c43cb8498279738ccChris Craik# Use of this source code is governed by a BSD-style license that can be 3cef7893435aa41160dd1255c43cb8498279738ccChris Craik# found in the LICENSE file. 4cef7893435aa41160dd1255c43cb8498279738ccChris Craik 5cef7893435aa41160dd1255c43cb8498279738ccChris Craik 6cef7893435aa41160dd1255c43cb8498279738ccChris Craikclass OutputFormatter(object): 7cef7893435aa41160dd1255c43cb8498279738ccChris Craik """A formatter for PageTestResults. 8cef7893435aa41160dd1255c43cb8498279738ccChris Craik 9cef7893435aa41160dd1255c43cb8498279738ccChris Craik An OutputFormatter takes PageTestResults, formats the results 10cef7893435aa41160dd1255c43cb8498279738ccChris Craik (telemetry.value.Value instances), and output the formatted results 11cef7893435aa41160dd1255c43cb8498279738ccChris Craik in the given output stream. 12cef7893435aa41160dd1255c43cb8498279738ccChris Craik 13cef7893435aa41160dd1255c43cb8498279738ccChris Craik Examples of output formatter: CsvOutputFormatter produces results in 14cef7893435aa41160dd1255c43cb8498279738ccChris Craik CSV format.""" 15cef7893435aa41160dd1255c43cb8498279738ccChris Craik 16cef7893435aa41160dd1255c43cb8498279738ccChris Craik def __init__(self, output_stream): 17cef7893435aa41160dd1255c43cb8498279738ccChris Craik """Constructs a new formatter that writes to the output_stream. 18cef7893435aa41160dd1255c43cb8498279738ccChris Craik 19cef7893435aa41160dd1255c43cb8498279738ccChris Craik Args: 20cef7893435aa41160dd1255c43cb8498279738ccChris Craik output_stream: The stream to write the formatted output to. 21cef7893435aa41160dd1255c43cb8498279738ccChris Craik """ 22cef7893435aa41160dd1255c43cb8498279738ccChris Craik self._output_stream = output_stream 23cef7893435aa41160dd1255c43cb8498279738ccChris Craik 24cef7893435aa41160dd1255c43cb8498279738ccChris Craik def Format(self, page_test_results): 25cef7893435aa41160dd1255c43cb8498279738ccChris Craik """Formats the given PageTestResults into the output stream. 26cef7893435aa41160dd1255c43cb8498279738ccChris Craik 27cef7893435aa41160dd1255c43cb8498279738ccChris Craik This will be called once at the end of a benchmark. 28cef7893435aa41160dd1255c43cb8498279738ccChris Craik 29cef7893435aa41160dd1255c43cb8498279738ccChris Craik Args: 30cef7893435aa41160dd1255c43cb8498279738ccChris Craik page_test_results: A PageTestResults object containing all results 31cef7893435aa41160dd1255c43cb8498279738ccChris Craik from the current benchmark run. 32cef7893435aa41160dd1255c43cb8498279738ccChris Craik """ 33cef7893435aa41160dd1255c43cb8498279738ccChris Craik raise NotImplementedError() 34cef7893435aa41160dd1255c43cb8498279738ccChris Craik 35cef7893435aa41160dd1255c43cb8498279738ccChris Craik @property 36cef7893435aa41160dd1255c43cb8498279738ccChris Craik def output_stream(self): 37cef7893435aa41160dd1255c43cb8498279738ccChris Craik return self._output_stream 38