Use functools.wraps in the cache() decorator