00001 00002 00003 00004 class Sorter: 00005 00006 00007 class Sortel: 00008 def __init__(self, udat): 00009 self.udat = udat 00010 00011 def __cmp__(self, other): 00012 00013 diff = self.score - other.score 00014 if diff <0: return -1 00015 if diff > 0: return 1 00016 return 0 00017 00018 def eval(self, fun, **fundat): 00019 self.score = fun(self.udat, **fundat) 00020 00021 00022 00023 def __init__(self,Items=[]): 00024 00025 self.list = [] 00026 for i in Items: 00027 self.append(i) 00028 00029 def append(self, dat): 00030 self.list.append(Sorter.Sortel(dat)) 00031 00032 def extend(self,items=[]): 00033 for i in items: 00034 self.append(i) 00035 00036 def Clear(self): 00037 self.list =[] 00038 00039 def Sort(self, fun, **fundat): 00040 for el in self.list: 00041 el.eval(fun, **fundat) 00042 00043 self.list.sort() 00044 rv = [] 00045 for el in self.list: 00046 rv.append(el.udat) 00047 return rv 00048 00049 00050