Index: tools/json_schema_compiler/model.py |
diff --git a/tools/json_schema_compiler/model.py b/tools/json_schema_compiler/model.py |
index 7507ae761ff7edc41770f9dc72c7ffead4197bca..3de975caebe2fe0ad7ef694c9d618fe6fd4d2432 100644 |
--- a/tools/json_schema_compiler/model.py |
+++ b/tools/json_schema_compiler/model.py |
@@ -141,7 +141,7 @@ class Type(object): |
self.ref_type = json['$ref'] |
elif 'enum' in json and json_type == 'string': |
self.property_type = PropertyType.ENUM |
- self.enum_values = [value for value in json['enum']] |
+ self.enum_values = [EnumValue(value) for value in json['enum']] |
elif json_type == 'any': |
self.property_type = PropertyType.ANY |
elif json_type == 'binary': |
@@ -343,6 +343,20 @@ class Property(object): |
unix_name = property(GetUnixName, SetUnixName) |
+class EnumValue(object): |
+ """A single value from an enum. |
+ Properties: |
+ - |name| name of the property as in the json. |
+ - |description| a description of the property (if provided) |
+ """ |
+ def __init__(self, json): |
+ if isinstance(json, dict): |
+ self.name = json['name'] |
+ self.description = json.get('description') |
+ else: |
+ self.name = json |
+ self.description = None |
+ |
class _Enum(object): |
"""Superclass for enum types with a "name" field, setting up repr/eq/ne. |
Enums need to do this so that equality/non-equality work over pickling. |