# Simple patch for gzip module for compress/uncompress functions # for bug #3488. # Created: Anand B Pillai import io import gzip def decompress(data): gz = gzip.GzipFile(fileobj = io.BytesIO(data)) bytes = gz.read() return bytes def compress(data, compresslevel = 9): if type(data) is str: raise TypeError("argument 1 must be bytes or read-only buffer, not str") io_obj = io.BytesIO(b'') gz = gzip.GzipFile(fileobj = io_obj, mode='wb', compresslevel = compresslevel) gz.write(data) gz.close() return io_obj.getvalue() if __name__ == "__main__": s = "This is a line of text" sc = compress(s.encode('utf-8')) print (decompress(sc))