def reorder_metadata()

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