'Override the weigh objects.
This override calls the parent to do the weigh objects and then
replaces any infinite weights with a value that is a multiple of the
delta between the min and max values.
NOTE(jecarey): the infinite weight value is only used when the
smallest value is being favored (negative multiplier).  When the
largest weight value is being used a weight of -1 is used instead.
See _weigh_object method.'

def weigh_objects(self, weighed_obj_list, weight_properties):

    tmp_weights = super(CapacityWeigher, self).weigh_objects(weighed_obj_list, weight_properties)
    if math.isinf(self.maxval):
        copy_weights = [w for w in tmp_weights if (not math.isinf(w))]
        self.maxval = max(copy_weights)
        offset = ((self.maxval - self.minval) * OFFSET_MULT)
        self.maxval += (OFFSET_MIN if (offset == 0.0) else offset)
        tmp_weights = [(self.maxval if math.isinf(w) else w) for w in tmp_weights]
    return tmp_weights
