docs: def run_once(function, state={}, errors={}):
      """A memoization decorator, whose purpose is to cache calls."""
      @six.wraps(function)
      def _wrapper(*args, **kwargs):
          if function in errors:
              # Deliberate use of LBYL.
              six.reraise(*errors[function])
  
          try:
              return state[function]
          except KeyError:
              try:
                  state[function] = result = function(*args, **kwargs)
                  return result
              except Exception:
                  errors[function] = sys.exc_info()
                  raise
      return _wrapper