code: def unbound_cache(func):
      """Caching decorator with an unbounded cache size."""
  
      cache = {}
  
      @functools.wraps(func)
      def caching_wrapper(*args):
          try:
              return cache[args]
          except KeyError:
              result = func(*args)
              cache[args] = result
              return result
  
      return caching_wrapper
  
imports: from __future__ import with_statement
  import functools
  from heapq import nsmallest
  from operator import itemgetter
  from whoosh.compat import iteritems
label_desc: Use image node_id 1 for calling a global function with example usage: unbound_cache(func) and returns: caching_wrapper, cache, result