| 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) |