From 5486c4a4c40774d0bd849d770b2100ddc782672d Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Mon, 27 Jan 2025 10:37:06 +0100 Subject: [PATCH] Fix tarfile.open overloads * Allow `compresslevel` argument for modes `w|gz` and `w|bz2`. * Remove `preset` argument from modes where it's not allowed. Closes: #13440 --- stdlib/tarfile.pyi | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/stdlib/tarfile.pyi b/stdlib/tarfile.pyi index 009aa9070aa8..2584eb93c9fe 100644 --- a/stdlib/tarfile.pyi +++ b/stdlib/tarfile.pyi @@ -242,13 +242,12 @@ def open( pax_headers: Mapping[str, str] | None = ..., debug: int | None = ..., errorlevel: int | None = ..., - preset: int | None = ..., ) -> TarFile: ... @overload def open( name: StrOrBytesPath | WriteableBuffer | None = None, *, - mode: Literal["w|", "w|gz", "w|bz2", "w|xz"], + mode: Literal["w|", "w|xz"], fileobj: IO[bytes] | None = None, bufsize: int = 10240, format: int | None = ..., @@ -260,7 +259,24 @@ def open( pax_headers: Mapping[str, str] | None = ..., debug: int | None = ..., errorlevel: int | None = ..., - preset: int | None = ..., +) -> TarFile: ... +@overload +def open( + name: StrOrBytesPath | WriteableBuffer | None = None, + *, + mode: Literal["w|gz", "w|bz2"], + fileobj: IO[bytes] | None = None, + bufsize: int = 10240, + format: int | None = ..., + tarinfo: type[TarInfo] | None = ..., + dereference: bool | None = ..., + ignore_zeros: bool | None = ..., + encoding: str | None = ..., + errors: str = ..., + pax_headers: Mapping[str, str] | None = ..., + debug: int | None = ..., + errorlevel: int | None = ..., + compresslevel: int = 9, ) -> TarFile: ... class ExFileObject(io.BufferedReader):