| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 """Generates Python source files from a mojom.Module.""" | 5 """Generates Python source files from a mojom.Module.""" |
| 6 | 6 |
| 7 import re | 7 import re |
| 8 | 8 |
| 9 import mojom.generate.constant_resolver as resolver | 9 import mojom.generate.constant_resolver as resolver |
| 10 import mojom.generate.generator as generator | 10 import mojom.generate.generator as generator |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 return '_descriptor.InterfaceType(%s)' % ', '.join(arguments) | 168 return '_descriptor.InterfaceType(%s)' % ', '.join(arguments) |
| 169 | 169 |
| 170 if mojom.IsInterfaceRequestKind(kind): | 170 if mojom.IsInterfaceRequestKind(kind): |
| 171 arguments = [] | 171 arguments = [] |
| 172 if mojom.IsNullableKind(kind): | 172 if mojom.IsNullableKind(kind): |
| 173 arguments.append('nullable=True') | 173 arguments.append('nullable=True') |
| 174 return '_descriptor.InterfaceRequestType(%s)' % ', '.join(arguments) | 174 return '_descriptor.InterfaceRequestType(%s)' % ', '.join(arguments) |
| 175 | 175 |
| 176 return _kind_to_type[kind] | 176 return _kind_to_type[kind] |
| 177 | 177 |
| 178 def GetFieldDescriptor(field, index, min_version): | 178 def GetFieldDescriptor(field, index, min_version, union_field=False): |
| 179 class_name = 'SingleFieldGroup' | 179 class_name = 'SingleFieldGroup' |
| 180 if field.kind == mojom.BOOL: | 180 if field.kind == mojom.BOOL and not union_field: |
| 181 class_name = 'FieldDescriptor' | 181 class_name = 'FieldDescriptor' |
| 182 arguments = [ '%r' % GetNameForElement(field) ] | 182 arguments = [ '%r' % GetNameForElement(field) ] |
| 183 arguments.append(GetFieldType(field.kind, field)) | 183 arguments.append(GetFieldType(field.kind, field)) |
| 184 arguments.append(str(index)) | 184 arguments.append(str(index)) |
| 185 arguments.append(str(min_version)) | 185 arguments.append(str(min_version)) |
| 186 if field.default: | 186 if field.default: |
| 187 if mojom.IsStructKind(field.kind): | 187 if mojom.IsStructKind(field.kind): |
| 188 arguments.append('default_value=True') | 188 arguments.append('default_value=True') |
| 189 else: | 189 else: |
| 190 arguments.append('default_value=%s' % ExpressionToText(field.default)) | 190 arguments.append('default_value=%s' % ExpressionToText(field.default)) |
| 191 return '_descriptor.%s(%s)' % (class_name, ', '.join(arguments)) | 191 return '_descriptor.%s(%s)' % (class_name, ', '.join(arguments)) |
| 192 | 192 |
| 193 def GetStructFieldDescriptor(packed_field): | 193 def GetStructFieldDescriptor(packed_field): |
| 194 return GetFieldDescriptor( | 194 return GetFieldDescriptor( |
| 195 packed_field.field, packed_field.index, packed_field.min_version) | 195 packed_field.field, packed_field.index, packed_field.min_version) |
| 196 | 196 |
| 197 def GetUnionFieldDescriptor(field): | 197 def GetUnionFieldDescriptor(field): |
| 198 return GetFieldDescriptor(field, field.ordinal, 0) | 198 return GetFieldDescriptor(field, field.ordinal, 0, union_field=True) |
| 199 | 199 |
| 200 def GetFieldGroup(byte): | 200 def GetFieldGroup(byte): |
| 201 if byte.packed_fields[0].field.kind == mojom.BOOL: | 201 if byte.packed_fields[0].field.kind == mojom.BOOL: |
| 202 descriptors = map(GetStructFieldDescriptor, byte.packed_fields) | 202 descriptors = map(GetStructFieldDescriptor, byte.packed_fields) |
| 203 return '_descriptor.BooleanGroup([%s])' % ', '.join(descriptors) | 203 return '_descriptor.BooleanGroup([%s])' % ', '.join(descriptors) |
| 204 assert len(byte.packed_fields) == 1 | 204 assert len(byte.packed_fields) == 1 |
| 205 return GetStructFieldDescriptor(byte.packed_fields[0]) | 205 return GetStructFieldDescriptor(byte.packed_fields[0]) |
| 206 | 206 |
| 207 def MojomToPythonImport(mojom): | 207 def MojomToPythonImport(mojom): |
| 208 return mojom.replace('.mojom', '_mojom') | 208 return mojom.replace('.mojom', '_mojom') |
| (...skipping 28 matching lines...) Expand all Loading... |
| 237 def GetImports(self): | 237 def GetImports(self): |
| 238 for each in self.module.imports: | 238 for each in self.module.imports: |
| 239 each['python_module'] = MojomToPythonImport(each['module_name']) | 239 each['python_module'] = MojomToPythonImport(each['module_name']) |
| 240 return self.module.imports | 240 return self.module.imports |
| 241 | 241 |
| 242 def GetJinjaParameters(self): | 242 def GetJinjaParameters(self): |
| 243 return { | 243 return { |
| 244 'lstrip_blocks': True, | 244 'lstrip_blocks': True, |
| 245 'trim_blocks': True, | 245 'trim_blocks': True, |
| 246 } | 246 } |
| OLD | NEW |