'A generator wrapper for the read() method. A call will block until
``amt`` bytes have been read from the connection or until the
connection is closed.
:param amt:
How much of the content to read. The generator will return up to
much data per iteration, but may return less. This is particularly
likely when using compressed data. However, the empty string will
never be returned.
:param decode_content:
If True, will attempt to decode the body based on the
\'content-encoding\' header.'

def stream(self, amt=(2 ** 16), decode_content=None):

    while (not is_fp_closed(self._fp)):
        data = self.read(amt=amt, decode_content=decode_content)
        if data:
            (yield data)
