Package gozerbot :: Module statdict
[hide private]
[frames] | no frames]

Source Code for Module gozerbot.statdict

 1  # gozerbot/statdict.py 
 2  # 
 3  # 
 4   
 5  """ stats dict """ 
 6   
 7  __copyright__ = 'this file is in the public domain' 
 8   
9 -class Statdict(dict):
10 11 """ dictionary to hold stats """ 12
13 - def set(self, item, value):
14 """ set item to value """ 15 self[item] = value
16
17 - def upitem(self, item, value=1):
18 """ increase item """ 19 if not self.has_key(item): 20 self[item] = value 21 return 22 self[item] += value
23
24 - def top(self, start=1, limit=None):
25 """ return highest items """ 26 result = [] 27 for item, value in self.iteritems(): 28 if value >= start: 29 result.append((item, value)) 30 result.sort(lambda b, a: cmp(a[1], b[1])) 31 if limit: 32 result = result[:limit] 33 return result
34
35 - def down(self, end=100, limit=None):
36 """ return lowest items """ 37 result = [] 38 for item, value in self.iteritems(): 39 if value <= end: 40 result.append((item, value)) 41 result.sort(lambda a, b: cmp(a[1], b[1])) 42 if limit: 43 return result[:limit] 44 else: 45 return result
46