cache.py revision b370df27c76fd875f3312be487868528121a4838
1import metrics 2 3class Cache: 4 def __init__(self): 5 self.data = {} 6 self.statistics = metrics.Metrics() 7 self.statistics.add_metric('hit') 8 self.statistics.add_metric('miss') 9 10 def look_for_key(self,key): 11 if key in self.data: 12 return True 13 return False 14 15 def add_item(self,key,value,ok_to_replace=True): 16 if not(ok_to_replace) and self.look_for_key(key): 17 return False 18 self.data[key] = value 19 return True 20 21 def get_value(self,key,default=None): 22 if self.look_for_key(key): 23 self.statistics.metric_hit('hit',key) 24 return self.data[key] 25 else: 26 self.statistics.metric_hit('miss',key) 27 return default 28 29