kinto-remote-settings/src/kinto_remote_settings/signer/serializer.py (8 lines of code) (raw):

import operator import canonicaljson def canonical_json(records, last_modified): records = (r for r in records if not r.get("deleted", False)) records = sorted(records, key=operator.itemgetter("id")) payload = {"data": records, "last_modified": "%s" % last_modified} dump = canonicaljson.dumps(payload) return dump