diff --git a/stdlib/tempfile.pyi b/stdlib/tempfile.pyi index 3499ee8c9..0ffe1c0e2 100644 --- a/stdlib/tempfile.pyi +++ b/stdlib/tempfile.pyi @@ -31,31 +31,33 @@ TMP_MAX: int tempdir: str | None template: str -_DirT: TypeAlias = AnyStr | os.PathLike[AnyStr] +_Dir: TypeAlias = AnyStr | os.PathLike[AnyStr] +_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, 8): @overload def NamedTemporaryFile( - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"], + mode: _StrMode, buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., *, errors: str | None = ..., ) -> _TemporaryFileWrapper[str]: ... @overload def NamedTemporaryFile( - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., *, errors: str | None = ..., @@ -68,7 +70,7 @@ if sys.version_info >= (3, 8): newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., *, errors: str | None = ..., @@ -77,24 +79,24 @@ if sys.version_info >= (3, 8): else: @overload def NamedTemporaryFile( - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"], + mode: _StrMode, buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., ) -> _TemporaryFileWrapper[str]: ... @overload def NamedTemporaryFile( - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., ) -> _TemporaryFileWrapper[bytes]: ... @overload @@ -105,7 +107,7 @@ else: newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., delete: bool = ..., ) -> _TemporaryFileWrapper[Any]: ... @@ -115,25 +117,25 @@ else: if sys.version_info >= (3, 8): @overload def TemporaryFile( - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"], + mode: _StrMode, buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., *, errors: str | None = ..., ) -> IO[str]: ... @overload def TemporaryFile( - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., *, errors: str | None = ..., ) -> IO[bytes]: ... @@ -145,30 +147,30 @@ else: newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., *, errors: str | None = ..., ) -> IO[Any]: ... else: @overload def TemporaryFile( - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"], + mode: _StrMode, buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., ) -> IO[str]: ... @overload def TemporaryFile( - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., ) -> IO[bytes]: ... @overload def TemporaryFile( @@ -178,7 +180,7 @@ else: newline: str | None = ..., suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., ) -> IO[Any]: ... class _TemporaryFileWrapper(Generic[AnyStr], IO[AnyStr]): @@ -236,7 +238,7 @@ class SpooledTemporaryFile(IO[AnyStr], _SpooledTemporaryFileBase): def __init__( self: SpooledTemporaryFile[bytes], max_size: int = ..., - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., @@ -250,7 +252,7 @@ class SpooledTemporaryFile(IO[AnyStr], _SpooledTemporaryFileBase): def __init__( self: SpooledTemporaryFile[str], max_size: int = ..., - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"] = ..., + mode: _StrMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., @@ -281,7 +283,7 @@ class SpooledTemporaryFile(IO[AnyStr], _SpooledTemporaryFileBase): def __init__( self: SpooledTemporaryFile[bytes], max_size: int = ..., - mode: Literal["rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b"] = ..., + mode: _BytesMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., @@ -293,7 +295,7 @@ class SpooledTemporaryFile(IO[AnyStr], _SpooledTemporaryFileBase): def __init__( self: SpooledTemporaryFile[str], max_size: int = ..., - mode: Literal["r", "w", "a", "x", "r+", "w+", "a+", "x+", "rt", "wt", "at", "xt", "r+t", "w+t", "a+t", "x+t"] = ..., + mode: _StrMode = ..., buffering: int = ..., encoding: str | None = ..., newline: str | None = ..., @@ -365,14 +367,14 @@ class TemporaryDirectory(Generic[AnyStr]): self, suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., - dir: _DirT[AnyStr] | None = ..., + dir: _Dir[AnyStr] | None = ..., ignore_cleanup_errors: bool = ..., ) -> None: ... else: @overload def __init__(self: TemporaryDirectory[str], suffix: None = ..., prefix: None = ..., dir: None = ...) -> None: ... @overload - def __init__(self, suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., dir: _DirT[AnyStr] | None = ...) -> None: ... + def __init__(self, suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., dir: _Dir[AnyStr] | None = ...) -> None: ... def cleanup(self) -> None: ... def __enter__(self) -> AnyStr: ... @@ -383,18 +385,18 @@ class TemporaryDirectory(Generic[AnyStr]): # The overloads overlap, but they should still work fine. @overload def mkstemp( # type: ignore[misc] - suffix: str | None = ..., prefix: str | None = ..., dir: _DirT[str] | None = ..., text: bool = ... + suffix: str | None = ..., prefix: str | None = ..., dir: _Dir[str] | None = ..., text: bool = ... ) -> tuple[int, str]: ... @overload def mkstemp( - suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _DirT[bytes] | None = ..., text: bool = ... + suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _Dir[bytes] | None = ..., text: bool = ... ) -> tuple[int, bytes]: ... # The overloads overlap, but they should still work fine. @overload -def mkdtemp(suffix: str | None = ..., prefix: str | None = ..., dir: _DirT[str] | None = ...) -> str: ... # type: ignore[misc] +def mkdtemp(suffix: str | None = ..., prefix: str | None = ..., dir: _Dir[str] | None = ...) -> str: ... # type: ignore[misc] @overload -def mkdtemp(suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _DirT[bytes] | None = ...) -> bytes: ... +def mkdtemp(suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _Dir[bytes] | None = ...) -> bytes: ... def mktemp(suffix: str = ..., prefix: str = ..., dir: StrPath | None = ...) -> str: ... def gettempdirb() -> bytes: ... def gettempprefixb() -> bytes: ...