Mercurial > hg
changeset 48012:406a7e629946
archival: force a `CompressionError` to bytes before passing to `error.Abort`
I'm not sure what changed before pytype 09-09-2021 (from 04-15-2021), but this
started getting flagged.
This fixes:
File "/mnt/c/Users/Matt/hg/mercurial/archival.py", line 199, in taropen: Function bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ints: Iterable[int])
Actually passed: (self, ints: tarfile.CompressionError)
Attributes of protocol Iterable[int] are not implemented on tarfile.CompressionError: __iter__
Differential Revision: https://phab.mercurial-scm.org/D11472
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 20 Sep 2021 11:03:46 -0400 |
parents | 8655a77dce94 |
children | 376d08ae904f |
files | mercurial/archival.py |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/archival.py Mon Sep 20 10:59:26 2021 -0400 +++ b/mercurial/archival.py Mon Sep 20 11:03:46 2021 -0400 @@ -29,6 +29,8 @@ vfs as vfsmod, ) +from .utils import stringutil + stringio = util.stringio # from unzip source code: @@ -196,7 +198,7 @@ name, pycompat.sysstr(mode + kind), fileobj ) except tarfile.CompressionError as e: - raise error.Abort(pycompat.bytestr(e)) + raise error.Abort(stringutil.forcebytestr(e)) if isinstance(dest, bytes): self.z = taropen(b'w:', name=dest)