+++ /dev/null
-#!/usr/bin/python
-
-import logging
-import memcache
-
-from .misc import Object
-
-class Memcached(Object):
- def init(self):
- self._connection = memcache.Client(["localhost"], debug=1)
-
- def get(self, key, *args, **kwargs):
- key = self._sanitize_key(key)
-
- logging.debug("Retrieving %s from cache..." % key)
-
- ret = self._connection.get(key, *args, **kwargs)
-
- if ret is None:
- logging.debug("Found nothing for %s" % key)
- else:
- logging.debug("Found object for %s" % key)
-
- return ret
-
- def get_multi(self, keys, *args, **kwargs):
- keys = (self._sanitize_key(key) for key in keys)
-
- logging.debug("Retrieving keys from cache: %s" % keys)
-
- ret = self._connection.get_multi(keys, *args, **kwargs)
-
- if ret is None:
- logging.debug("Found nothing for %s" % keys)
- else:
- logging.debug("Found objects for %s" % keys)
-
- return ret
-
- def add(self, key, data, *args, **kwargs):
- key = self._sanitize_key(key)
-
- if data is None:
- logging.debug("Putting nothing into cache for %s" % key)
- else:
- logging.debug("Putting object into cache for %s" % key)
-
- return self._connection.add(key, data, *args, **kwargs)
-
- def set(self, key, data, *args, **kwargs):
- key = self._sanitize_key(key)
-
- if data is None:
- logging.debug("Putting nothing into cache for %s" % key)
- else:
- logging.debug("Putting object into cache for %s" % key)
-
- return self._connection.set(key, data, *args, **kwargs)
-
- def delete(self, key, *args, **kwargs):
- key = self._sanitize_key(key)
-
- return self._connection.delete(key, *args, **kwargs)
-
- def incr(self, key):
- key = self._sanitize_key(key)
-
- logging.debug("Incrementing key %s" % key)
-
- return self._connection.incr(key)
-
- @staticmethod
- def _sanitize_key(key):
- # Memcache does not seem to like any spaces
- return key.replace(" ", "-")