From 7361e20cbc6ffc7a9bc5d8a259ae5db55bba3882 Mon Sep 17 00:00:00 2001 From: James Aylett Date: Fri, 22 Jul 2011 17:24:20 +0000 Subject: [PATCH] Make cache object picklable. --- redis_cache/cache.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/redis_cache/cache.py b/redis_cache/cache.py index 201eb1c4..13540fe4 100644 --- a/redis_cache/cache.py +++ b/redis_cache/cache.py @@ -37,7 +37,11 @@ def __init__(self, server, params): """ Connect to Redis, and set up cache backend. """ + self._init(server, params) + + def _init(self, server, params): super(CacheClass, self).__init__(params) + self._initargs = { 'server': server, 'params': params } options = params.get('OPTIONS', {}) password = params.get('password', options.get('PASSWORD', None)) db = params.get('db', options.get('DB', 1)) @@ -56,6 +60,12 @@ def __init__(self, server, params): port = 6379 self._client = redis.Redis(host=host, port=port, db=db, password=password) + def __getstate__(self): + return self._initargs + + def __setstate__(self, state): + self._init(**state) + def make_key(self, key, version=None): """ Returns the utf-8 encoded bytestring of the given key as a CacheKey