blob: 839e372ed85574e8f39d5a7c3fa625a4303c6f1d [file] [log] [blame]
Gaurav Mishra9b72c682016-07-10 20:21:58 +01001#!/usr/bin/python
2# Copyright (C) 2016 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17import argparse, json, sys
18
19class MetricsParser(object):
20 """Executor of this utility"""
21
22 def __init__(self):
23 self._parser = argparse.ArgumentParser('Parse CTS Test metrics jsons')
24 self._parser.add_argument('filenames', metavar='filenames', nargs='+',
25 help='filenames of metrics jsons to be parsed')
26 self._metrics = []
27
28 def _ParseArgs(self):
29 self._args = self._parser.parse_args()
30
31 def _Parse(self, filename):
32 json_file = open(filename)
33 json_data = json.load(json_file)
34 self._metrics.append(json_data)
35 self._PrintJson(filename, json_data)
36
37 def _PrintJson(self, filename, json_data):
38 print "\nFilename: %s" % filename
39 stream_names = json_data.keys()
40 for stream_name in stream_names:
41 metrics_list = json_data.get(stream_name)
42 for metrics in metrics_list:
43 print "\nStream Name: %s" % stream_name
44 for key in metrics.keys():
45 print "Key: %s \t Value: %s" % (key, str(metrics.get(key)))
46
47 def Run(self):
48 self._ParseArgs()
49 try:
50 for filename in self._args.filenames:
51 self._Parse(filename)
52 except (IOError, ValueError) as e:
53 print >> sys.stderr, e
54 raise KeyboardInterrupt
55
56if __name__ == '__main__':
57 MetricsParser().Run()
58