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

Side by Side Diff: tools/json_schema_compiler/model.py

Issue 10639020: Switch the downloads API over to IDL/json_schema_compiler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import copy 5 import copy
6 import os.path 6 import os.path
7 import re 7 import re
8 8
9 class ParseException(Exception): 9 class ParseException(Exception):
10 """Thrown when data in the model is invalid. 10 """Thrown when data in the model is invalid.
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 self.functions = [] 186 self.functions = []
187 self.has_value = False 187 self.has_value = False
188 self.description = json.get('description') 188 self.description = json.get('description')
189 self.parent = parent 189 self.parent = parent
190 _AddProperties(self, json) 190 _AddProperties(self, json)
191 if is_additional_properties: 191 if is_additional_properties:
192 self.type_ = PropertyType.ADDITIONAL_PROPERTIES 192 self.type_ = PropertyType.ADDITIONAL_PROPERTIES
193 elif '$ref' in json: 193 elif '$ref' in json:
194 self.ref_type = json['$ref'] 194 self.ref_type = json['$ref']
195 self.type_ = PropertyType.REF 195 self.type_ = PropertyType.REF
196 elif 'enum' in json: 196 elif 'enum' in json and json.get('type') == 'string':
197 # Non-string enums (as in the case of [legalValues=(1,2)]) should fall
198 # through to the next elif.
197 self.enum_values = [] 199 self.enum_values = []
198 for value in json['enum']: 200 for value in json['enum']:
199 self.enum_values.append(value) 201 self.enum_values.append(value)
200 self.type_ = PropertyType.ENUM 202 self.type_ = PropertyType.ENUM
201 elif 'type' in json: 203 elif 'type' in json:
202 json_type = json['type'] 204 json_type = json['type']
203 if json_type == 'string': 205 if json_type == 'string':
204 self.type_ = PropertyType.STRING 206 self.type_ = PropertyType.STRING
205 elif json_type == 'any': 207 elif json_type == 'any':
206 self.type_ = PropertyType.ANY 208 self.type_ = PropertyType.ANY
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 # handled in pure Javascript on the render process (and .: never reach 366 # handled in pure Javascript on the render process (and .: never reach
365 # C++ let alone the browser). 367 # C++ let alone the browser).
366 if property_json.get('type') == 'function': 368 if property_json.get('type') == 'function':
367 continue 369 continue
368 model.properties[name] = Property( 370 model.properties[name] = Property(
369 model, 371 model,
370 name, 372 name,
371 property_json, 373 property_json,
372 from_json=from_json, 374 from_json=from_json,
373 from_client=from_client) 375 from_client=from_client)
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/idl_schema_test.py ('k') | tools/json_schema_compiler/schema_util.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698