docs: def get_cached(self):
          """ Get items from feed cache while trying to emulate
          how API handles offset/since/before parameters
          """
          def id_in_list(list, id):
              if id:
                  if [i for i in list if i.id == id]:
                      return True
                  else:
                      raise PyPumpException("id %r not in feed." % self._since)
  
          tmp = []
          if self._before is not None:
              # return list based on before param
              if not id_in_list(self.feed._items, self._before):
                  return tmp
              if isinstance(self._before, six.string_types):
                  found = False
                  for i in self.feed._items:
                      if not found:
                          if i.id == self._before:
                              found = True
                          continue
                      else:
                          tmp.append(i)
                  self._before = False
              return tmp
  
          if self._since is not None:
              # return list based on since param
              if not id_in_list(self.feed._items, self._since):
                  return tmp
              if isinstance(self._since, six.string_types):
                  found = False
                  for i in self.feed._items:
                      if i.id == self._since:
                          found = True
                          break
                      else:
                          tmp.append(i)
                  self._since = False
              return reversed(tmp)
  
          if not hasattr(self, 'usedcache'):
              self.usedcache = True  # invalidate cache
  
              if isinstance(self._offset, int):
                  # return list based on offset
                  return self.feed._items[self._offset:]
  
              return self.feed._items
          else:
              return tmp