'Decode the data passed in and potentially flush the decoder.'

def _decode(self, data, decode_content, flush_decoder):

    try:
        if (decode_content and self._decoder):
            data = self._decoder.decompress(data)
    except (IOError, zlib.error) as e:
        content_encoding = self.headers.get('content-encoding', '').lower()
        raise DecodeError(('Received    response    with    content-encoding:    %s,    but    failed    to    decode    it.' % content_encoding), e)
    if (flush_decoder and decode_content):
        data += self._flush_decoder()
    return data
