in scripts/schema/finalizer.py [0:0]
def order_reuses(fields):
foreign_reuses = {}
self_nestings = {}
for schema_name, schema in fields.items():
if not 'reusable' in schema['schema_details']:
continue
reuse_order = schema['schema_details']['reusable']['order']
for reuse_entry in schema['schema_details']['reusable']['expected']:
destination_schema_name = reuse_entry['full'].split('.')[0]
if destination_schema_name == schema_name:
# Accumulate self-nestings for phase 2.
self_nestings.setdefault(destination_schema_name, [])
self_nestings[destination_schema_name].extend([reuse_entry])
else:
# Group foreign reuses by 'order' attribute.
foreign_reuses.setdefault(reuse_order, {})
foreign_reuses[reuse_order].setdefault(schema_name, [])
foreign_reuses[reuse_order][schema_name].extend([reuse_entry])
return foreign_reuses, self_nestings