def _backgroundGzip(self, compression): s = StringIO() gzipHandle = gzip.GzipFile(fileobj=s, mode='wb', compresslevel=compression) gzipHandle.write(self._compressible) gzipHandle.close() s = s.getvalue() with self._finalizedLock: self._gzipped = True self._compressible = s self._compressedSize = len(s)
def getData(self): if self._isString: return self._data s = StringIO() i = self._data.read(_bufferSize) while len(i): s.write(i) i = self._data.read(_bufferSize) if self._closeAfter: self._data.close() return s.getvalue()
def writeTo(self, target): data = self._data if type(data) is type(u''): data = data.encode('utf8') if type(data) is type(''): self._headers['Content-Length'] = len(data) data = StringIO(data) size = self._headers.writeTo(target) if data is not None: i = data.read(httpResponse._chunkSize) l = len(i) while l: chunk = hex(l)[2:] target(chunk + '\r\n' + i + '\r\n') size += l + len(chunk) + 4 i = data.read(httpResponse._chunkSize) l = len(i) target('0\r\n') # Final chunk size += 3 return size