'Return a sorted (descending), normalized list of WeighedObjects.'

def get_weighed_objects(self, weigher_classes, obj_list, weighing_properties):

    if (not obj_list):
        return []
    weighed_objs = [self.object_class(obj, 0.0) for obj in obj_list]
    for weigher_cls in weigher_classes:
        weigher = weigher_cls()
        weights = weigher.weigh_objects(weighed_objs, weighing_properties)
        weights = normalize(weights, minval=weigher.minval, maxval=weigher.maxval)
        for (i, weight) in enumerate(weights):
            obj = weighed_objs[i]
            obj.weight += (weigher.weight_multiplier() * weight)
    return sorted(weighed_objs, key=(lambda x: x.weight), reverse=True)
