def records_diff()

in kinto-remote-settings/src/kinto_remote_settings/signer/utils.py [0:0]


def records_diff(left, right):
    left_by_id = {r["id"]: r for r in left}
    results = []
    for r in right:
        rid = r["id"]
        left_record = left_by_id.pop(rid, None)
        if left_record is None:
            # In right, but not in left (deleted!)
            results.append({**r, "deleted": True})
        elif not records_equal(left_record, r):
            # Differ between left and right
            results.append(left_record)
    # In left, but not in right.
    results.extend(left_by_id.values())
    return results