OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import math | 6 import math |
7 import sys | 7 import sys |
8 | 8 |
9 import json5_generator | 9 import json5_generator |
10 import template_expander | 10 import template_expander |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
182 groups[field.group_name].append(field) | 182 groups[field.group_name].append(field) |
183 | 183 |
184 no_group = groups.pop(None) | 184 no_group = groups.pop(None) |
185 subgroups = [Group(group_name, [], _reorder_fields(fields)) for group_name, fields in groups.items()] | 185 subgroups = [Group(group_name, [], _reorder_fields(fields)) for group_name, fields in groups.items()] |
186 return Group('', subgroups=subgroups, fields=_reorder_fields(no_group)) | 186 return Group('', subgroups=subgroups, fields=_reorder_fields(no_group)) |
187 | 187 |
188 | 188 |
189 def _create_diff_groups_map(diff_function_inputs, root_group): | 189 def _create_diff_groups_map(diff_function_inputs, root_group): |
190 diff_functions_map = {} | 190 diff_functions_map = {} |
191 for entry in diff_function_inputs: | 191 for entry in diff_function_inputs: |
192 diff_functions_map[entry['name']] = _create_diff_groups(entry['fields'], root_group) | 192 diff_functions_map[entry['name']] = _create_diff_groups(entry['fields_to _diff'], entry['methods_to_diff'], root_group) |
193 return diff_functions_map | 193 return diff_functions_map |
194 | 194 |
195 | 195 |
196 def _create_diff_groups(fields_to_diff, root_group): | 196 def _list_field_dependencies(methods_to_diff): |
197 field_dependencies = [] | |
198 for entry in methods_to_diff: | |
199 field_dependencies.append(entry['field_dependencies']) | |
200 return field_dependencies | |
alancutter (OOO until 2018)
2017/05/16 03:28:38
This looks like it's creating a list of lists.
nainar
2017/05/16 03:46:13
Fixed.
| |
201 | |
202 | |
203 def _create_diff_groups(fields_to_diff, methods_to_diff, root_group): | |
197 diff_group = DiffGroup(root_group.member_name) | 204 diff_group = DiffGroup(root_group.member_name) |
205 field_dependencies = _list_field_dependencies(methods_to_diff) | |
198 for subgroup in root_group.subgroups: | 206 for subgroup in root_group.subgroups: |
199 if any(field.property_name in fields_to_diff for field in subgroup.all_f ields): | 207 if any(field.property_name in (fields_to_diff + field_dependencies) for field in subgroup.all_fields): |
200 diff_group.subgroups.append(_create_diff_groups(fields_to_diff, subg roup)) | 208 diff_group.subgroups.append(_create_diff_groups(fields_to_diff, meth ods_to_diff, subgroup)) |
201 for field in root_group.fields: | 209 for field in root_group.fields: |
202 if field.property_name in fields_to_diff: | 210 if field.property_name in fields_to_diff: |
203 diff_group.expressions.append(field.getter_expression) | 211 diff_group.expressions.append(field.getter_expression) |
212 for entry in methods_to_diff: | |
213 if field.property_name in entry['field_dependencies']: | |
214 diff_group.expressions.append(entry['method']) | |
204 return diff_group | 215 return diff_group |
205 | 216 |
206 | 217 |
207 def _create_enums(properties): | 218 def _create_enums(properties): |
208 """ | 219 """ |
209 Returns an OrderedDict of enums to be generated, enum name -> [list of enum values] | 220 Returns an OrderedDict of enums to be generated, enum name -> [list of enum values] |
210 """ | 221 """ |
211 enums = {} | 222 enums = {} |
212 for property_ in properties: | 223 for property_ in properties: |
213 # Only generate enums for keyword properties that use the default field_ type_path. | 224 # Only generate enums for keyword properties that use the default field_ type_path. |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
431 | 442 |
432 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') | 443 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') |
433 def generate_base_computed_style_constants(self): | 444 def generate_base_computed_style_constants(self): |
434 return { | 445 return { |
435 'properties': self._properties, | 446 'properties': self._properties, |
436 'enums': self._generated_enums, | 447 'enums': self._generated_enums, |
437 } | 448 } |
438 | 449 |
439 if __name__ == '__main__': | 450 if __name__ == '__main__': |
440 json5_generator.Maker(ComputedStyleBaseWriter).main() | 451 json5_generator.Maker(ComputedStyleBaseWriter).main() |
OLD | NEW |