195640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org#!/usr/bin/env python 295640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org# Copyright (c) 2012 The Chromium Authors. All rights reserved. 301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# Use of this source code is governed by a BSD-style license that can be 401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# found in the LICENSE file. 501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.gather import interface 801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass JsonLoader(interface.GathererBase): 1101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''A simple gatherer that loads and parses a JSON file.''' 1201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def Parse(self): 14ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org '''Reads and parses the text of self._json_text into the data structure in 1501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._data. 1601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ''' 17b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org self._json_text = self._LoadInputFile() 18ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org self._data = None 19ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org 2001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org globs = {} 2101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org exec('data = ' + self._json_text, globs) 2201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._data = globs['data'] 2301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def GetData(self): 2501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Returns the parsed JSON data.''' 2601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return self._data 27