experimental alternative client creation for the memcached loader
authorArmin Ronacher <armin.ronacher@active-4.com>
Mon, 22 Oct 2007 21:27:36 +0000 (23:27 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Mon, 22 Oct 2007 21:27:36 +0000 (23:27 +0200)
--HG--
branch : trunk

jinja/loaders.py

index 35859a6f072521ea49247593cc991a93b761c43e..6fc4ac73278ebedfa3f720708719610ea9fc70bd 100644 (file)
@@ -272,19 +272,22 @@ class MemcachedLoaderMixin(object):
     """
 
     def __init__(self, use_memcache, memcache_time=60 * 60 * 24 * 7,
-                 memcache_host=None, item_prefix='template/'):
-        try:
-            try:
-                from cmemcache import Client
-            except ImportError:
-                from memcache import Client
-        except ImportError:
-            raise RuntimeError('the %r loader requires an installed '
-                               'memcache module' % self.__class__.__name__)
+                 memcache_host=None, item_prefix='template/', client=None):
         if memcache_host is None:
             memcache_host = ['127.0.0.1:11211']
         if use_memcache:
-            self.__memcache = Client(list(memcache_host))
+            if client is None:
+                try:
+                    try:
+                        from cmemcache import Client
+                    except ImportError:
+                        from memcache import Client
+                except ImportError:
+                    raise RuntimeError('the %r loader requires an installed '
+                                       'memcache module' %
+                                       self.__class__.__name__)
+                client = Client(list(memcache_host))
+            self.__memcache = client
             self.__memcache_time = memcache_time
         else:
             self.__memcache = None