class MemcachedWrapper(object): '''Class to allow readonly access to underlying memcached connection''' def __init__(self, counter, host, port=11211, socket_connect_timeout=1): if not host: raise ConfigurationError('Memcached wrapper improperly configured. Valid memcached host is required!') self.__con = Client((host, port)) self._counter = counter('') def __del__(self): self.__con.quit() def get(self, key): return self.__con.get(key) def json(self, key): return pyjson.loads(self.get(key)) def stats(self, extra_keys=[]): data = self.__con.stats() ret = {} for key in data: if key in COUNTER_KEYS: ret['{}_per_sec'.format(key.replace('total_', ''))] = \ round(self._counter.key(key).per_second(data.get(key, 0)), 2) elif key in VALUE_KEYS: ret[key] = data[key] elif key in extra_keys: ret[key] = data[key] return ret
class MemcachedWrapper(object): '''Class to allow readonly access to underlying memcached connection''' def __init__(self, counter, host, port=11211, socket_connect_timeout=1): if not host: raise ConfigurationError( 'Memcached wrapper improperly configured. Valid memcached host is required!' ) self.__con = Client((host, port)) self._counter = counter('') def __del__(self): self.__con.quit() def get(self, key): return self.__con.get(key) def json(self, key): return pyjson.loads(self.get(key)) def stats(self, extra_keys=[]): data = self.__con.stats() ret = {} for key in data: if key in COUNTER_KEYS: ret['{}_per_sec'.format(key.replace('total_', ''))] = \ round(self._counter.key(key).per_second(data.get(key, 0)), 2) elif key in VALUE_KEYS: ret[key] = data[key] elif key in extra_keys: ret[key] = data[key] return ret