Пример #1
0
    def _cached(func, *args):
        func_type = utils._func_type(func)

        @wraps(func)
        def wrapper(*args, **kwargs):
            name = utils._func_info(func, args)
            key = get_key(name, func_type, args, kwargs)
            value = cache.get(key)

            if value is None:
                value = func(*args, **kwargs)
                # Try and set the key, value pair in the cache.
                # But if it fails on a Memcached Error handle it.
                try:
                    cache.set(key, value, timeout)
                except MemcachedError:
                    pass

            return value

        def invalidate(*args, **kwargs):
            name = utils._func_info(func, args)
            key = get_key(name, func_type, args, kwargs)
            cache.delete(key)
        wrapper.invalidate = invalidate
        return wrapper
Пример #2
0
    def _cached(func, *args):
        func_type = utils._func_type(func)

        @wraps(func)
        def wrapper(*args, **kwargs):
            name = utils._func_info(func, args)
            key = get_key(name, func_type, args, kwargs)
            value = cache.get(key)

            if value is None:
                value = func(*args, **kwargs)
                cache.set(key, value, timeout)

            return value

        def invalidate(*args, **kwargs):
            name = utils._func_info(func, args)
            key = get_key(name, func_type, args, kwargs)
            cache.delete(key)
        wrapper.invalidate = invalidate
        return wrapper
Пример #3
0
 def assertFuncType(self, func, tp):
     self.assertEqual(_func_type(func), tp)
Пример #4
0
 def assertFuncType(self, func, tp):
     self.assertEqual(_func_type(func), tp)