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

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

Issue 10829348: Extensions Docs Server: Large performance increase (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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
« no previous file with comments | « chrome/common/extensions/docs/server2/template_data_source_test.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 def Copy(self): 292 def Copy(self):
293 """Makes a copy of this model.Property object and allow the unix_name to be 293 """Makes a copy of this model.Property object and allow the unix_name to be
294 set again. 294 set again.
295 """ 295 """
296 property_copy = copy.copy(self) 296 property_copy = copy.copy(self)
297 property_copy._unix_name_used = False 297 property_copy._unix_name_used = False
298 return property_copy 298 return property_copy
299 299
300 unix_name = property(GetUnixName, SetUnixName) 300 unix_name = property(GetUnixName, SetUnixName)
301 301
302 class _PropertyTypeInfo(object):
303 """This class is not an inner class of |PropertyType| so it can be pickled.
304 """
305 def __init__(self, is_fundamental, name):
306 self.is_fundamental = is_fundamental
307 self.name = name
308
309 def __repr__(self):
310 return self.name
311
302 class PropertyType(object): 312 class PropertyType(object):
303 """Enum of different types of properties/parameters. 313 """Enum of different types of properties/parameters.
304 """ 314 """
305 class _Info(object): 315 INTEGER = _PropertyTypeInfo(True, "INTEGER")
306 def __init__(self, is_fundamental, name): 316 INT64 = _PropertyTypeInfo(True, "INT64")
307 self.is_fundamental = is_fundamental 317 DOUBLE = _PropertyTypeInfo(True, "DOUBLE")
308 self.name = name 318 BOOLEAN = _PropertyTypeInfo(True, "BOOLEAN")
309 319 STRING = _PropertyTypeInfo(True, "STRING")
310 def __repr__(self): 320 ENUM = _PropertyTypeInfo(False, "ENUM")
311 return self.name 321 ARRAY = _PropertyTypeInfo(False, "ARRAY")
312 322 REF = _PropertyTypeInfo(False, "REF")
313 INTEGER = _Info(True, "INTEGER") 323 CHOICES = _PropertyTypeInfo(False, "CHOICES")
314 INT64 = _Info(True, "INT64") 324 OBJECT = _PropertyTypeInfo(False, "OBJECT")
315 DOUBLE = _Info(True, "DOUBLE") 325 FUNCTION = _PropertyTypeInfo(False, "FUNCTION")
316 BOOLEAN = _Info(True, "BOOLEAN") 326 BINARY = _PropertyTypeInfo(False, "BINARY")
317 STRING = _Info(True, "STRING") 327 ANY = _PropertyTypeInfo(False, "ANY")
318 ENUM = _Info(False, "ENUM") 328 ADDITIONAL_PROPERTIES = _PropertyTypeInfo(False, "ADDITIONAL_PROPERTIES")
319 ARRAY = _Info(False, "ARRAY")
320 REF = _Info(False, "REF")
321 CHOICES = _Info(False, "CHOICES")
322 OBJECT = _Info(False, "OBJECT")
323 FUNCTION = _Info(False, "FUNCTION")
324 BINARY = _Info(False, "BINARY")
325 ANY = _Info(False, "ANY")
326 ADDITIONAL_PROPERTIES = _Info(False, "ADDITIONAL_PROPERTIES")
327 329
328 def UnixName(name): 330 def UnixName(name):
329 """Returns the unix_style name for a given lowerCamelCase string. 331 """Returns the unix_style name for a given lowerCamelCase string.
330 """ 332 """
331 # First replace any lowerUpper patterns with lower_Upper. 333 # First replace any lowerUpper patterns with lower_Upper.
332 s1 = re.sub('([a-z])([A-Z])', r'\1_\2', name) 334 s1 = re.sub('([a-z])([A-Z])', r'\1_\2', name)
333 # Now replace any ACMEWidgets patterns with ACME_Widgets 335 # Now replace any ACMEWidgets patterns with ACME_Widgets
334 s2 = re.sub('([A-Z]+)([A-Z][a-z])', r'\1_\2', s1) 336 s2 = re.sub('([A-Z]+)([A-Z][a-z])', r'\1_\2', s1)
335 # Finally, replace any remaining periods, and make lowercase. 337 # Finally, replace any remaining periods, and make lowercase.
336 return s2.replace('.', '_').lower() 338 return s2.replace('.', '_').lower()
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 of |json|. 379 of |json|.
378 """ 380 """
379 model.properties = {} 381 model.properties = {}
380 for name, property_json in json.get('properties', {}).items(): 382 for name, property_json in json.get('properties', {}).items():
381 model.properties[name] = Property( 383 model.properties[name] = Property(
382 model, 384 model,
383 name, 385 name,
384 property_json, 386 property_json,
385 from_json=from_json, 387 from_json=from_json,
386 from_client=from_client) 388 from_client=from_client)
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/template_data_source_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698