Skip to content

Commit cf25698

Browse files
authored
tempfile: more updates for py312 (#10256)
1 parent c3791d0 commit cf25698

File tree

2 files changed

+50
-3
lines changed

2 files changed

+50
-3
lines changed

stdlib/tempfile.pyi

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,51 @@ template: str
3333
_StrMode: TypeAlias = Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"]
3434
_BytesMode: TypeAlias = Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"]
3535

36-
if sys.version_info >= (3, 8):
36+
if sys.version_info >= (3, 12):
37+
@overload
38+
def NamedTemporaryFile(
39+
mode: _StrMode,
40+
buffering: int = -1,
41+
encoding: str | None = None,
42+
newline: str | None = None,
43+
suffix: AnyStr | None = None,
44+
prefix: AnyStr | None = None,
45+
dir: GenericPath[AnyStr] | None = None,
46+
delete: bool = True,
47+
*,
48+
errors: str | None = None,
49+
delete_on_close: bool = True,
50+
) -> _TemporaryFileWrapper[str]: ...
51+
@overload
52+
def NamedTemporaryFile(
53+
mode: _BytesMode = "w+b",
54+
buffering: int = -1,
55+
encoding: str | None = None,
56+
newline: str | None = None,
57+
suffix: AnyStr | None = None,
58+
prefix: AnyStr | None = None,
59+
dir: GenericPath[AnyStr] | None = None,
60+
delete: bool = True,
61+
*,
62+
errors: str | None = None,
63+
delete_on_close: bool = True,
64+
) -> _TemporaryFileWrapper[bytes]: ...
65+
@overload
66+
def NamedTemporaryFile(
67+
mode: str = "w+b",
68+
buffering: int = -1,
69+
encoding: str | None = None,
70+
newline: str | None = None,
71+
suffix: AnyStr | None = None,
72+
prefix: AnyStr | None = None,
73+
dir: GenericPath[AnyStr] | None = None,
74+
delete: bool = True,
75+
*,
76+
errors: str | None = None,
77+
delete_on_close: bool = True,
78+
) -> _TemporaryFileWrapper[Any]: ...
79+
80+
elif sys.version_info >= (3, 8):
3781
@overload
3882
def NamedTemporaryFile(
3983
mode: _StrMode,
@@ -185,7 +229,11 @@ class _TemporaryFileWrapper(Generic[AnyStr], IO[AnyStr]):
185229
file: IO[AnyStr] # io.TextIOWrapper, io.BufferedReader or io.BufferedWriter
186230
name: str
187231
delete: bool
188-
def __init__(self, file: IO[AnyStr], name: str, delete: bool = True) -> None: ...
232+
if sys.version_info >= (3, 12):
233+
def __init__(self, file: IO[AnyStr], name: str, delete: bool = True, delete_on_close: bool = True) -> None: ...
234+
else:
235+
def __init__(self, file: IO[AnyStr], name: str, delete: bool = True) -> None: ...
236+
189237
def __enter__(self) -> Self: ...
190238
def __exit__(self, exc: type[BaseException] | None, value: BaseException | None, tb: TracebackType | None) -> None: ...
191239
def __getattr__(self, name: str) -> Any: ...

tests/stubtest_allowlists/py312.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ tarfile.__all__
203203
tarfile.data_filter
204204
tarfile.fully_trusted_filter
205205
tarfile.tar_filter
206-
tempfile.NamedTemporaryFile
207206
token.EXCLAMATION
208207
token.FSTRING_END
209208
token.FSTRING_MIDDLE

0 commit comments

Comments
 (0)