code: 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
docs: 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.