code: def request(self, _cache_key, _cache_ignore, _cache_timeout, **kwargs):
          
          if _cache_key:
              # Pop the request's session cookies from the cache key.
              # These appear to be unreliable and change with every
              # request. Also, with the introduction of OAuth I don't think
              # that cookies are being used to store anything that
              # differentiates API requests anyways
              url, items = _cache_key
              _cache_key = (url, (items[0], items[1], items[3], items[4]))
  
          if kwargs['request'].method != 'GET':
              # I added this check for RTV, I have no idea why PRAW would ever
              # want to cache POST/PUT/DELETE requests
              _cache_ignore = True
  
          if _cache_ignore:
              return self._request(**kwargs)
  
          self._clear_timeouts(_cache_timeout)
          if _cache_key in self.cache:
              return self.cache[_cache_key]
  
          result = self._request(**kwargs)
  
          # The handlers don't call `raise_for_status` so we need to ignore
          # status codes that will result in an exception that should not be
          # cached.
          if result.status_code not in (200, 302):
              return result
  
          self.timeouts[_cache_key] = timer()
          self.cache[_cache_key] = result
          return result
docs: This is a wrapper function that handles the caching of the request.
  
          See DefaultHandler.with_cache for reference.