From 05a27ca7f27d903f645aec1a196dfc71eaf0ce43 Mon Sep 17 00:00:00 2001 From: AlexWaygood Date: Sun, 4 Jun 2023 14:28:31 +0100 Subject: [PATCH 1/2] `tempfile`: more updates for py312 --- stdlib/tempfile.pyi | 50 ++++++++++++++++++++++++++++- tests/stubtest_allowlists/py312.txt | 1 - 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/stdlib/tempfile.pyi b/stdlib/tempfile.pyi index a89fa4e1ce12..a9922d42bf7a 100644 --- a/stdlib/tempfile.pyi +++ b/stdlib/tempfile.pyi @@ -33,6 +33,50 @@ template: str _StrMode: TypeAlias = Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"] _BytesMode: TypeAlias = Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] +if sys.version_info >= (3, 12): + @overload + def NamedTemporaryFile( + mode: _StrMode, + buffering: int = -1, + encoding: str | None = None, + newline: str | None = None, + suffix: AnyStr | None = None, + prefix: AnyStr | None = None, + dir: GenericPath[AnyStr] | None = None, + delete: bool = True, + *, + errors: str | None = None, + delete_on_close: bool = True, + ) -> _TemporaryFileWrapper[str]: ... + @overload + def NamedTemporaryFile( + mode: _BytesMode = "w+b", + buffering: int = -1, + encoding: str | None = None, + newline: str | None = None, + suffix: AnyStr | None = None, + prefix: AnyStr | None = None, + dir: GenericPath[AnyStr] | None = None, + delete: bool = True, + *, + errors: str | None = None, + delete_on_close: bool = True, + ) -> _TemporaryFileWrapper[bytes]: ... + @overload + def NamedTemporaryFile( + mode: str = "w+b", + buffering: int = -1, + encoding: str | None = None, + newline: str | None = None, + suffix: AnyStr | None = None, + prefix: AnyStr | None = None, + dir: GenericPath[AnyStr] | None = None, + delete: bool = True, + *, + errors: str | None = None, + delete_on_close: bool = True, + ) -> _TemporaryFileWrapper[Any]: ... + if sys.version_info >= (3, 8): @overload def NamedTemporaryFile( @@ -185,7 +229,11 @@ class _TemporaryFileWrapper(Generic[AnyStr], IO[AnyStr]): file: IO[AnyStr] # io.TextIOWrapper, io.BufferedReader or io.BufferedWriter name: str delete: bool - def __init__(self, file: IO[AnyStr], name: str, delete: bool = True) -> None: ... + if sys.version_info >= (3, 12): + def __init__(self, file: IO[AnyStr], name: str, delete: bool = True, delete_on_close: bool = True) -> None: ... + else: + def __init__(self, file: IO[AnyStr], name: str, delete: bool = True) -> None: ... + def __enter__(self) -> Self: ... def __exit__(self, exc: type[BaseException] | None, value: BaseException | None, tb: TracebackType | None) -> None: ... def __getattr__(self, name: str) -> Any: ... diff --git a/tests/stubtest_allowlists/py312.txt b/tests/stubtest_allowlists/py312.txt index 3e14f8b9233c..2d99af22b10c 100644 --- a/tests/stubtest_allowlists/py312.txt +++ b/tests/stubtest_allowlists/py312.txt @@ -203,7 +203,6 @@ tarfile.__all__ tarfile.data_filter tarfile.fully_trusted_filter tarfile.tar_filter -tempfile.NamedTemporaryFile token.EXCLAMATION token.FSTRING_END token.FSTRING_MIDDLE From 87595db3d3619c4c2f112f9e7294cea3f0a6ac2b Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sun, 4 Jun 2023 14:30:44 +0100 Subject: [PATCH 2/2] oops --- stdlib/tempfile.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/tempfile.pyi b/stdlib/tempfile.pyi index a9922d42bf7a..1b6e4b99a5ec 100644 --- a/stdlib/tempfile.pyi +++ b/stdlib/tempfile.pyi @@ -77,7 +77,7 @@ if sys.version_info >= (3, 12): delete_on_close: bool = True, ) -> _TemporaryFileWrapper[Any]: ... -if sys.version_info >= (3, 8): +elif sys.version_info >= (3, 8): @overload def NamedTemporaryFile( mode: _StrMode,