Page MenuHome

caching.py
No OneTemporary

caching.py

import collections
import functools
from flask import g
def cache_for_request():
"""Decorator; caches the return value for the duration of the current request.
The caller determines the cache key: *args are used as cache key, **kwargs
are not.
"""
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
if not hasattr(g, 'request_level_cache'):
g.request_level_cache = collections.defaultdict(dict)
try:
return g.request_level_cache[func][args]
except KeyError:
val = func(*args, **kwargs)
g.request_level_cache[func][args] = val
return val
return wrapper
return decorator

File Metadata

Mime Type
text/x-python
Expires
Thu, May 19, 9:12 AM (2 d)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
9a/a9/696667376c9cb2b60bb8f936c2a5

Event Timeline