Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: grit/gather/json_loader.py

Issue 7994004: Initial source commit to grit-i18n project. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « grit/gather/interface.py ('k') | grit/gather/muppet_strings.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/gather/json_loader.py
===================================================================
--- grit/gather/json_loader.py (revision 0)
+++ grit/gather/json_loader.py (revision 0)
@@ -0,0 +1,53 @@
+# Copyright (c) 2010 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 types
+
+from grit.gather import interface
+from grit import util
+
+
+class JsonLoader(interface.GathererBase):
+ '''A simple gatherer that loads and parses a JSON file.'''
+
+ def __init__(self, json_text):
+ '''Initializes a gatherer object with JSON input.
+
+ Args:
+ json_text: A string containing a JSON expression.
+ '''
+ super(type(self), self).__init__()
+ self._json_text = json_text
+ self._data = None
+
+ def Parse(self):
+ '''Parses the text of self._json_text into the data structure in
+ self._data.
+ '''
+ globs = {}
+ exec('data = ' + self._json_text, globs)
+ self._data = globs['data']
+
+ def GetData(self):
+ '''Returns the parsed JSON data.'''
+ return self._data
+
+ def FromFile(filename_or_stream, extkey, encoding):
+ '''Creates a JSONLoader instance from a file or stream.
+
+ Args:
+ filename_or_stream: The source of JSON data.
+ extkey: Unused, see interface.py.
+ encoding: The encoding used in the JSON file. (Note that it should
+ not contain localized strings.)
+
+ Returns:
+ The JSONLoader instance holding the JSON data unparsed.
+ '''
+ if isinstance(filename_or_stream, types.StringTypes):
+ filename_or_stream = \
+ util.WrapInputStream(file(filename_or_stream, 'rU'), encoding)
+ return JsonLoader(filename_or_stream.read())
+ FromFile = staticmethod(FromFile)
Property changes on: grit/gather/json_loader.py
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « grit/gather/interface.py ('k') | grit/gather/muppet_strings.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698