docs: def exhaust(self, chunk_size=1024 * 16):
          """Exhaust the stream.  This consumes all the data left until the
          limit is reached.
  
          :param chunk_size: the size for a chunk.  It will read the chunk
                             until the stream is exhausted and throw away
                             the results.
          """
          to_read = self.limit - self._pos
          chunk = chunk_size
          while to_read > 0:
              chunk = min(to_read, chunk)
              self.read(chunk)
              to_read -= chunk