########################################
# The contents of this file are subject to the MLX PUBLIC LICENSE version
# 1.0 (the "License"); you may not use this file except in
# compliance with the License.
# 
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See
# the License for the specific language governing rights and limitations
# under the License.
# 
# The Original Source Code is "compClust", released 2003 September 03.
# 
# The Original Source Code was developed by the California Institute of
# Technology (Caltech).  Portions created by Caltech are Copyright (C)
# 2002-2003 California Institute of Technology. All Rights Reserved.
########################################

"""
This module contains tools to rearrange and sort datasets
and assciated labelings

"""

from compClust.mlx.labelings import Labeling
from compClust.util import DistanceMetrics


def getDistancesToVector(vector, dataset, 
                         distanceFunction=DistanceMetrics.EuclideanDistance):

    """
    distanceLabeling = getDistancesToVector(vector, dataset, distanceFunction=DistanceMetrics.EuclideanDistance):


    Returns a labeling that consists of the distances that each member
    of the dataset away from the vector
    
    """

    labels   = map(str , distanceFunction(vector, dataset.getData()))
    labeling = Labeling(dataset)
    return labeling.labelRows(labels)
