From e2f359f814805285e7ece3c9edba2cc93c958540 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Tue, 11 Jun 2024 22:40:29 +0200 Subject: improve typing linuxnamespaces/__init__.py: * linuxnamespaces.filedescriptor only exports FileDescriptor. By importing *, we re-export it implicitly. linuxnamespaces/atlocation.py: * PathLike should be parameterized and we no longer allow bytes there. linuxnamespaces/tarutils.py: * Resolve dict vs Mapping. tests/test_simple.py: * Establish expected type to mypy. examples/unschroot.py: * pidfd is first an int and later a FileDescriptor, but we always use it as int. * Also tell mypy that we cannot get NULL from waitid. --- linuxnamespaces/tarutils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'linuxnamespaces/tarutils.py') diff --git a/linuxnamespaces/tarutils.py b/linuxnamespaces/tarutils.py index facb537..6285d5a 100644 --- a/linuxnamespaces/tarutils.py +++ b/linuxnamespaces/tarutils.py @@ -19,7 +19,11 @@ TarPath = str | bytes | os.PathLike[str] | os.PathLike[bytes] class ZstdTarFile(tarfile.TarFile): """Subclass of tarfile.TarFile that can read zstd compressed archives.""" - OPEN_METH = {"zst": "zstopen"} | tarfile.TarFile.OPEN_METH + # mypy types OPEN_METH as Mapping rather than dict while it really is a + # dict. Hence, it complains that there is no __or__ for dict and Mapping. + OPEN_METH = { + "zst": "zstopen", + } | tarfile.TarFile.OPEN_METH # type: ignore[operator] @classmethod def zstopen( -- cgit v1.2.3