Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Persisting a cache in Python to disk using a decorator
def persist_cache_to_disk(filename):
def decorator(original_func):
cache = pickle.load(open(filename, 'r'))
except (IOError, ValueError):
cache = {}
atexit.register(lambda: pickle.dump(cache, open(filename, "w")))
def new_func(*args):
if tuple(args) not in cache:
cache[tuple(args)] = original_func(*args)
return cache[args]
return new_func
return decorator
# example use of the decorator
def get_all_users():
# your method here

shantanuo commented Jun 18, 2016

This works from python command prompt. But it does not work from ipython notebook. A modified version can be found here..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment