def _get_closest_matches(input_attributes, target_attributes):
    closest_matches = {}

    # for each object in the first set find the objects with the closest target attributes
    for a in input_attributes:
        best_dist = float('inf')
        best_matches = []
        for b in target_attributes:
            dist = _euclidean_dist(input_attributes[a], target_attributes[b])
            if dist < best_dist:
                best_matches = [b]
                best_dist = dist
            elif dist == best_dist:
                best_matches.append(b)
        closest_matches[a] = best_matches

    return closest_matches


# from http://rosettacode.org/wiki/Levenshtein_distance
Gets the details of this email template.
dataset/ETHPy150Open angr/angr/angr/analyses/bindiff.py/_get_closest_matches--crossover with--dataset/ETHPy150Open campaignmonitor/createsend-python/createsend/template.py/Template.details