archival: remove GzipFileWithTime
This was required for Python 2 support, which we no longer need to support.
Differential Revision: https://phab.mercurial-scm.org/D12285
--- a/mercurial/archival.py Mon Feb 21 10:56:31 2022 -0700
+++ b/mercurial/archival.py Sun Feb 20 16:46:05 2022 -0700
@@ -136,39 +136,6 @@
"""write archive to tar file or stream. can write uncompressed,
or compress with gzip or bzip2."""
- if pycompat.ispy3:
- GzipFileWithTime = gzip.GzipFile # camelcase-required
- else:
-
- class GzipFileWithTime(gzip.GzipFile):
- def __init__(self, *args, **kw):
- timestamp = None
- if 'mtime' in kw:
- timestamp = kw.pop('mtime')
- if timestamp is None:
- self.timestamp = time.time()
- else:
- self.timestamp = timestamp
- gzip.GzipFile.__init__(self, *args, **kw)
-
- def _write_gzip_header(self):
- self.fileobj.write(b'\037\213') # magic header
- self.fileobj.write(b'\010') # compression method
- fname = self.name
- if fname and fname.endswith(b'.gz'):
- fname = fname[:-3]
- flags = 0
- if fname:
- flags = gzip.FNAME # pytype: disable=module-attr
- self.fileobj.write(pycompat.bytechr(flags))
- gzip.write32u( # pytype: disable=module-attr
- self.fileobj, int(self.timestamp)
- )
- self.fileobj.write(b'\002')
- self.fileobj.write(b'\377')
- if fname:
- self.fileobj.write(fname + b'\000')
-
def __init__(self, dest, mtime, kind=b''):
self.mtime = mtime
self.fileobj = None
@@ -178,7 +145,7 @@
mode = mode[0:1]
if not fileobj:
fileobj = open(name, mode + b'b')
- gzfileobj = self.GzipFileWithTime(
+ gzfileobj = gzip.GzipFile(
name,
pycompat.sysstr(mode + b'b'),
zlib.Z_BEST_COMPRESSION,