From 84977299fef752e2ec228f56149a1e378cd62b6e Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Sat, 10 Dec 2022 12:13:00 +0100 Subject: [PATCH 1/3] Use `Literal` for `compression` in `zipfile` --- stdlib/zipfile.pyi | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/stdlib/zipfile.pyi b/stdlib/zipfile.pyi index e964cd6eda87..ca249257a495 100644 --- a/stdlib/zipfile.pyi +++ b/stdlib/zipfile.pyi @@ -29,6 +29,7 @@ _DateTuple: TypeAlias = tuple[int, int, int, int, int, int] _ReadWriteMode: TypeAlias = Literal["r", "w"] _ReadWriteBinaryMode: TypeAlias = Literal["r", "w", "rb", "wb"] _ZipFileMode: TypeAlias = Literal["r", "w", "x", "a"] +_CompressionMode: TypeAlias = Literal[0, 8, 12, 14] class BadZipFile(Exception): ... @@ -100,7 +101,7 @@ class ZipFile: fp: IO[bytes] | None NameToInfo: dict[str, ZipInfo] start_dir: int # undocumented - compression: int # undocumented + compression: _CompressionMode # undocumented compresslevel: int | None # undocumented mode: _ZipFileMode # undocumented pwd: bytes | None # undocumented @@ -110,7 +111,7 @@ class ZipFile: self, file: StrPath | IO[bytes], mode: Literal["r"] = ..., - compression: int = ..., + compression: _CompressionMode = ..., allowZip64: bool = ..., compresslevel: int | None = ..., *, @@ -122,7 +123,7 @@ class ZipFile: self, file: StrPath | IO[bytes], mode: _ZipFileMode = ..., - compression: int = ..., + compression: _CompressionMode = ..., allowZip64: bool = ..., compresslevel: int | None = ..., *, @@ -134,7 +135,7 @@ class ZipFile: self, file: StrPath | IO[bytes], mode: _ZipFileMode = ..., - compression: int = ..., + compression: _CompressionMode = ..., allowZip64: bool = ..., compresslevel: int | None = ..., *, @@ -145,7 +146,7 @@ class ZipFile: self, file: StrPath | IO[bytes], mode: _ZipFileMode = ..., - compression: int = ..., + compression: _CompressionMode = ..., allowZip64: bool = ..., compresslevel: int | None = ..., ) -> None: ... @@ -184,14 +185,19 @@ class ZipFile: class PyZipFile(ZipFile): def __init__( - self, file: str | IO[bytes], mode: _ZipFileMode = ..., compression: int = ..., allowZip64: bool = ..., optimize: int = ... + self, + file: str | IO[bytes], + mode: _ZipFileMode = ..., + compression: _CompressionMode = ..., + allowZip64: bool = ..., + optimize: int = ..., ) -> None: ... def writepy(self, pathname: str, basename: str = ..., filterfunc: Callable[[str], bool] | None = ...) -> None: ... class ZipInfo: filename: str date_time: _DateTuple - compress_type: int + compress_type: _CompressionMode comment: bytes extra: bytes create_system: int From 1f9f8322d8163035e87fb263fe49acbdfc9e4bfb Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 13 Dec 2022 11:04:26 +0100 Subject: [PATCH 2/3] Use `Literal` for `zipfile` constants --- stdlib/zipfile.pyi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stdlib/zipfile.pyi b/stdlib/zipfile.pyi index ca249257a495..e2de70c9dfb0 100644 --- a/stdlib/zipfile.pyi +++ b/stdlib/zipfile.pyi @@ -275,10 +275,10 @@ if sys.version_info >= (3, 8): def is_zipfile(filename: StrOrBytesPath | _SupportsReadSeekTell) -> bool: ... -ZIP_STORED: int -ZIP_DEFLATED: int -ZIP64_LIMIT: int -ZIP_FILECOUNT_LIMIT: int -ZIP_MAX_COMMENT: int -ZIP_BZIP2: int -ZIP_LZMA: int +ZIP_STORED: Literal[0] +ZIP_DEFLATED: Literal[8] +ZIP64_LIMIT: Literal[2147483647] +ZIP_FILECOUNT_LIMIT: Literal[65535] +ZIP_MAX_COMMENT: Literal[65535] +ZIP_BZIP2: Literal[12] +ZIP_LZMA: Literal[14] From 7b33830859d4eef09e1e255965e5ad475170040a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Wed, 14 Dec 2022 10:33:27 +0000 Subject: [PATCH 3/3] Revert changes to very big constants --- stdlib/zipfile.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/zipfile.pyi b/stdlib/zipfile.pyi index e2de70c9dfb0..60134c915da7 100644 --- a/stdlib/zipfile.pyi +++ b/stdlib/zipfile.pyi @@ -277,8 +277,8 @@ def is_zipfile(filename: StrOrBytesPath | _SupportsReadSeekTell) -> bool: ... ZIP_STORED: Literal[0] ZIP_DEFLATED: Literal[8] -ZIP64_LIMIT: Literal[2147483647] -ZIP_FILECOUNT_LIMIT: Literal[65535] -ZIP_MAX_COMMENT: Literal[65535] +ZIP64_LIMIT: int +ZIP_FILECOUNT_LIMIT: int +ZIP_MAX_COMMENT: int ZIP_BZIP2: Literal[12] ZIP_LZMA: Literal[14]