I'm not a zlib specialist, but I think what this means is that the stream is not finished, but it's valid anyway.
For example, you get the same behaviour by doing:
c = zlib.compressobj()
s = c.compress(b'This is just a test string.')
s += c.flush(zlib.Z_FULL_FLUSH)
The resulting bytestring is a non-terminated zlib stream. It still decompresses to the original data fine.
I think the appropriate fix is to add an argument to flush(). Here is a patch, I named the argument "strict" by lack of imagination :) |