Index: Source/bindings/scripts/compute_interfaces_info_overall.py |
diff --git a/Source/bindings/scripts/compute_interfaces_info_overall.py b/Source/bindings/scripts/compute_interfaces_info_overall.py |
index b019e674624143f4d621dcc50329a525be283079..b2cf5a913bdcdce1df4af69b72d9125c87c0e0d6 100755 |
--- a/Source/bindings/scripts/compute_interfaces_info_overall.py |
+++ b/Source/bindings/scripts/compute_interfaces_info_overall.py |
@@ -132,10 +132,17 @@ def dict_of_dicts_of_lists_update_or_append(existing, other): |
for inner_key, inner_value in value.iteritems(): |
existing_value[inner_key].extend(inner_value) |
+ |
################################################################################ |
# Computations |
################################################################################ |
+def read_interfaces_info(interfaces_info_individual_filenames): |
+ # Read in individual info from files |
+ for interfaces_info_individual_filename in interfaces_info_individual_filenames: |
+ with open(interfaces_info_individual_filename) as interfaces_info_individual_file: |
+ yield pickle.load(interfaces_info_individual_file) |
+ |
def compute_inheritance_info(interface_name): |
"""Compute inheritance information, namely ancestors and inherited extended attributes.""" |
@@ -159,23 +166,20 @@ def compute_inheritance_info(interface_name): |
}) |
-def compute_interfaces_info_overall(interfaces_info_individual_filenames): |
+def compute_interfaces_info_overall(info_individuals): |
"""Compute information about IDL files. |
Information is stored in global interfaces_info. |
""" |
- # Read in individual info from files |
- for interfaces_info_individual_filename in interfaces_info_individual_filenames: |
- with open(interfaces_info_individual_filename) as interfaces_info_individual_file: |
- info = pickle.load(interfaces_info_individual_file) |
- # No overlap between interface names, so ok to use dict.update |
- interfaces_info.update(info['interfaces_info']) |
- # Interfaces in one component may have partial interfaces in |
- # another component. This is ok (not a layering violation), since |
- # partial interfaces are used to *extend* interfaces. |
- # We thus need to update or append if already present |
- dict_of_dicts_of_lists_update_or_append( |
- partial_interface_files, info['partial_interface_files']) |
+ for info in info_individuals: |
+ # No overlap between interface names, so ok to use dict.update |
+ interfaces_info.update(info['interfaces_info']) |
+ # Interfaces in one component may have partial interfaces in |
+ # another component. This is ok (not a layering violation), since |
+ # partial interfaces are used to *extend* interfaces. |
+ # We thus need to update or append if already present |
+ dict_of_dicts_of_lists_update_or_append( |
+ partial_interface_files, info['partial_interface_files']) |
# Record inheritance information individually |
for interface_name, interface_info in interfaces_info.iteritems(): |
@@ -255,8 +259,9 @@ def main(): |
options, args = parse_options() |
# args = Input1, Input2, ..., Output |
interfaces_info_filename = args.pop() |
+ info_individuals = read_interfaces_info(args) |
- compute_interfaces_info_overall(args) |
+ compute_interfaces_info_overall(info_individuals) |
write_pickle_file(interfaces_info_filename, |
interfaces_info, |
options.write_file_only_if_changed) |