From 99906aeb5da6a6fe8a46ac74dc3bfdd1b22b417b Mon Sep 17 00:00:00 2001
From: Őry Máté <ory.mate@cloud.bme.hu>
Date: Fri, 15 Aug 2014 19:32:02 +0200
Subject: [PATCH] common: use update_wrapper on cached method

---
 circle/common/models.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/circle/common/models.py b/circle/common/models.py
index d63beb3..f92cce9 100644
--- a/circle/common/models.py
+++ b/circle/common/models.py
@@ -17,6 +17,7 @@
 
 from collections import deque
 from contextlib import contextmanager
+from functools import update_wrapper
 from hashlib import sha224
 from itertools import chain, imap
 from logging import getLogger
@@ -233,9 +234,11 @@ def method_cache(memcached_seconds=60, instance_seconds=5):  # noqa
 
     def inner_cache(method):
 
+        method_name = method.__name__
+
         def get_key(instance, *args, **kwargs):
             return sha224(unicode(method.__module__) +
-                          unicode(method.__name__) +
+                          method_name +
                           unicode(instance.id) +
                           unicode(args) +
                           unicode(kwargs)).hexdigest()
@@ -269,6 +272,9 @@ def method_cache(memcached_seconds=60, instance_seconds=5):  # noqa
                              unicode(args), unicode(result))
 
             return result
+
+        update_wrapper(x, method)
+        x._original = method
         return x
 
     return inner_cache
--
libgit2 0.26.0