Skip to content

Commit 034cfab

Browse files
authored
Use Literal for compression in zipfile (#9346)
1 parent e476c12 commit 034cfab

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

stdlib/zipfile.pyi

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ _DateTuple: TypeAlias = tuple[int, int, int, int, int, int]
2929
_ReadWriteMode: TypeAlias = Literal["r", "w"]
3030
_ReadWriteBinaryMode: TypeAlias = Literal["r", "w", "rb", "wb"]
3131
_ZipFileMode: TypeAlias = Literal["r", "w", "x", "a"]
32+
_CompressionMode: TypeAlias = Literal[0, 8, 12, 14]
3233

3334
class BadZipFile(Exception): ...
3435

@@ -100,7 +101,7 @@ class ZipFile:
100101
fp: IO[bytes] | None
101102
NameToInfo: dict[str, ZipInfo]
102103
start_dir: int # undocumented
103-
compression: int # undocumented
104+
compression: _CompressionMode # undocumented
104105
compresslevel: int | None # undocumented
105106
mode: _ZipFileMode # undocumented
106107
pwd: bytes | None # undocumented
@@ -110,7 +111,7 @@ class ZipFile:
110111
self,
111112
file: StrPath | IO[bytes],
112113
mode: Literal["r"] = ...,
113-
compression: int = ...,
114+
compression: _CompressionMode = ...,
114115
allowZip64: bool = ...,
115116
compresslevel: int | None = ...,
116117
*,
@@ -122,7 +123,7 @@ class ZipFile:
122123
self,
123124
file: StrPath | IO[bytes],
124125
mode: _ZipFileMode = ...,
125-
compression: int = ...,
126+
compression: _CompressionMode = ...,
126127
allowZip64: bool = ...,
127128
compresslevel: int | None = ...,
128129
*,
@@ -134,7 +135,7 @@ class ZipFile:
134135
self,
135136
file: StrPath | IO[bytes],
136137
mode: _ZipFileMode = ...,
137-
compression: int = ...,
138+
compression: _CompressionMode = ...,
138139
allowZip64: bool = ...,
139140
compresslevel: int | None = ...,
140141
*,
@@ -145,7 +146,7 @@ class ZipFile:
145146
self,
146147
file: StrPath | IO[bytes],
147148
mode: _ZipFileMode = ...,
148-
compression: int = ...,
149+
compression: _CompressionMode = ...,
149150
allowZip64: bool = ...,
150151
compresslevel: int | None = ...,
151152
) -> None: ...
@@ -184,14 +185,19 @@ class ZipFile:
184185

185186
class PyZipFile(ZipFile):
186187
def __init__(
187-
self, file: str | IO[bytes], mode: _ZipFileMode = ..., compression: int = ..., allowZip64: bool = ..., optimize: int = ...
188+
self,
189+
file: str | IO[bytes],
190+
mode: _ZipFileMode = ...,
191+
compression: _CompressionMode = ...,
192+
allowZip64: bool = ...,
193+
optimize: int = ...,
188194
) -> None: ...
189195
def writepy(self, pathname: str, basename: str = ..., filterfunc: Callable[[str], bool] | None = ...) -> None: ...
190196

191197
class ZipInfo:
192198
filename: str
193199
date_time: _DateTuple
194-
compress_type: int
200+
compress_type: _CompressionMode
195201
comment: bytes
196202
extra: bytes
197203
create_system: int
@@ -269,10 +275,10 @@ if sys.version_info >= (3, 8):
269275

270276
def is_zipfile(filename: StrOrBytesPath | _SupportsReadSeekTell) -> bool: ...
271277

272-
ZIP_STORED: int
273-
ZIP_DEFLATED: int
278+
ZIP_STORED: Literal[0]
279+
ZIP_DEFLATED: Literal[8]
274280
ZIP64_LIMIT: int
275281
ZIP_FILECOUNT_LIMIT: int
276282
ZIP_MAX_COMMENT: int
277-
ZIP_BZIP2: int
278-
ZIP_LZMA: int
283+
ZIP_BZIP2: Literal[12]
284+
ZIP_LZMA: Literal[14]

0 commit comments

Comments
 (0)