41 lines
962 B
Python
41 lines
962 B
Python
# Copyright 2015 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
|
|
import collections
|
|
|
|
|
|
def checksum_counts(checksums):
|
|
"""
|
|
@param checksums: list of checksums, each checksum in a 4-tuple of ints
|
|
@returns a dictionary of checksums as keys mapped to their respective
|
|
count of occurance in the list.
|
|
|
|
"""
|
|
counts = {}
|
|
|
|
for checksum in checksums:
|
|
if checksum in counts:
|
|
counts[checksum] += 1
|
|
else:
|
|
counts[checksum] = 1
|
|
|
|
return counts
|
|
|
|
|
|
def checksum_indices(checksums):
|
|
"""
|
|
@param checksums: list of checksums.
|
|
@returns an OrderedDict containing checksums as keys and their respective
|
|
first-occurance indices as values
|
|
|
|
"""
|
|
|
|
d = collections.OrderedDict()
|
|
|
|
for i, checksum in enumerate(checksums):
|
|
if checksum not in d:
|
|
d[checksum] = i
|
|
|
|
return d |