##// END OF EJS Templates
compression: accept level management for zlib compression...
marmoute -
r42209:aaececb4 default
parent child Browse files
Show More
@@ -456,6 +456,10 b' class _zlibengine(compressionengine):'
456 456 return _GzipCompressedStreamReader(fh)
457 457
458 458 class zlibrevlogcompressor(object):
459
460 def __init__(self, level=None):
461 self._level = level
462
459 463 def compress(self, data):
460 464 insize = len(data)
461 465 # Caller handles empty input case.
@@ -465,7 +469,10 b' class _zlibengine(compressionengine):'
465 469 return None
466 470
467 471 elif insize <= 1000000:
472 if self._level is None:
468 473 compressed = zlib.compress(data)
474 else:
475 compressed = zlib.compress(data, self._level)
469 476 if len(compressed) < insize:
470 477 return compressed
471 478 return None
@@ -474,7 +481,10 b' class _zlibengine(compressionengine):'
474 481 # memory usage for large inputs. So do streaming compression
475 482 # on large inputs.
476 483 else:
484 if self._level is None:
477 485 z = zlib.compressobj()
486 else:
487 z = zlib.compressobj(level=self._level)
478 488 parts = []
479 489 pos = 0
480 490 while pos < insize:
General Comments 0
You need to be logged in to leave comments. Login now