benchmarking/data_converters/data_converter_base.py (27 lines of code) (raw):

#!/usr/bin/env python ############################################################################## # Copyright 2017-present, Facebook, Inc. # All rights reserved. # # This source code is licensed under the license found in the # LICENSE file in the root directory of this source tree. ############################################################################## from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import abc from six import string_types class DataConverterBase(object): def __init__(self): pass @abc.abstractmethod def getName(self): return "Error" # collect data from the binary @abc.abstractmethod def collect(self, data, args): raise AssertionError("Need to call one of the implementations of the collector") # convert the data to a unified format @abc.abstractmethod def convert(self, data): raise AssertionError("Need to call one of the implementations of the converter") def _prepareData(self, data): if data is None: return [] if isinstance(data, string_types): rows = data.split("\n") else: assert isinstance(data, list), "Input format must be string or list" rows = data return rows