blob: 25d76f4e7a113db9d2135d355c61a48a3be0f356 [file] [log] [blame]
import pickle
try:
import uwsgi
except ImportError:
def uwsgi_lock(function):
return function
class Uwsgi(dict):
def cache_get(self, *args, **kwargs):
return self.get(*args, **kwargs)
def cache_set(self, *args, **kwargs):
return self.set(*args, **kwargs)
def cache_update(self, *args, **kwargs):
return self.update(*args, **kwargs)
def cache_del(self, *args, **kwargs):
return self.__delitem__(*args, **kwargs)
def cache_exists(self, *args, **kwargs):
return self.__contains__(*args, **kwargs)
uwsgi = Uwsgi()
class Cache(dict):
def get(self, key):
return self.__getitem__(key)
def set(self, key, value):
return self.__setitem__(key, value)
def update(self, key, value):
if not self.__contains__(key):
return self.set(key, value)
dump = pickle.dumps(value)
return uwsgi.cache_update(key, dump)
def delete(self, key):
if self.__contains__(key):
return self.__delitem__(key)
def __getitem__(self, key):
if not self.__contains__(key):
return None
dump = uwsgi.cache_get(key)
return pickle.loads(dump)
def __setitem__(self, key, value):
dump = pickle.dumps(value)
if self.__contains__(key):
uwsgi.cache_update(key, dump)
return uwsgi.cache_set(key, dump)
def __delitem__(self, key):
return uwsgi.cache_del(key)
def __contains__(self, key):
return uwsgi.cache_exists(key)