'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.'

def exhaust(self, chunk_size=(1024 * 64)):

    to_read = (self.limit - self._pos)
    chunk = chunk_size
    while (to_read > 0):
        chunk = min(to_read, chunk)
        self.read(chunk)
        to_read -= chunk
