in mozilla_schema_generator/glean_ping.py [0:0]
def reorder_metadata(metadata):
desired_order_list = [
"bq_dataset_family",
"bq_table",
"bq_metadata_format",
"include_info_sections",
"submission_timestamp_granularity",
"expiration_policy",
"override_attributes",
"jwe_mappings",
]
reordered_metadata = {
k: metadata[k] for k in desired_order_list if k in metadata
}
# re-order jwe-mappings
desired_order_list = ["source_field_path", "decrypted_field_path"]
jwe_mapping_metadata = reordered_metadata.get("jwe_mappings")
if jwe_mapping_metadata:
reordered_jwe_mapping_metadata = []
for mapping in jwe_mapping_metadata:
reordered_jwe_mapping_metadata.append(
{k: mapping[k] for k in desired_order_list if k in mapping}
)
reordered_metadata["jwe_mappings"] = reordered_jwe_mapping_metadata
# future proofing, in case there are other fields added at the ping top level
# add them to the end.
leftovers = {k: metadata[k] for k in set(metadata) - set(reordered_metadata)}
reordered_metadata = {**reordered_metadata, **leftovers}
return reordered_metadata