[PATCH 1 of 5 more-in-stack] compression: use 'None' for no-compression
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Fri Sep 18 00:18:42 UTC 2015
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1442364808 25200
# Tue Sep 15 17:53:28 2015 -0700
# Node ID fd2be097daf47c1d8f94f1c99084c5240bdb3f95
# Parent 1e042e31bd0ce66d89431dea1ac594228e66ee01
compression: use 'None' for no-compression
This seems more idiomatic and clearer. We still support both None and 'UN' for
now because no user are migrated.
diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -156,18 +156,20 @@ def writebundle(ui, cg, filename, bundle
class cg1unpacker(object):
deltaheader = _CHANGEGROUPV1_DELTA_HEADER
deltaheadersize = struct.calcsize(deltaheader)
version = '01'
def __init__(self, fh, alg):
+ if alg == 'UN':
+ alg = None # get more modern without breaking too much
if not alg in util.decompressors:
raise util.Abort(_('unknown stream compression type: %s')
% alg)
self._stream = util.decompressors[alg](fh)
self._type = alg
self.callback = None
def compressed(self):
- return self._type != 'UN'
+ return self._type is not None
def read(self, l):
return self._stream.read(l)
def seek(self, pos):
return self._stream.seek(pos)
def tell(self):
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -2347,15 +2347,17 @@ class nocompress(object):
return x
def flush(self):
return ""
compressors = {
- 'UN': nocompress,
+ None: nocompress,
# lambda to prevent early import
'BZ': lambda: bz2.BZ2Compressor(),
'GZ': lambda: zlib.compressobj(),
}
+# also support the old form by courtesies
+compressors['UN'] = compressors[None]
def _makedecompressor(decompcls):
def generator(f):
d = decompcls()
for chunk in filechunkiter(f):
@@ -2369,12 +2371,14 @@ def _bz2():
# Bzip2 stream start with BZ, but we stripped it.
# we put it back for good measure.
d.decompress('BZ')
return d
-decompressors = {'UN': lambda fh: fh,
+decompressors = {None: lambda fh: fh,
'BZ': _makedecompressor(_bz2),
'GZ': _makedecompressor(lambda: zlib.decompressobj()),
}
+# also support the old form by courtesies
+decompressors['UN'] = decompressors[None]
# convenient shortcut
dst = debugstacktrace
More information about the Mercurial-devel
mailing list