Introduce _typeshed.GenericPath and _typeshed.AnyStr_co (#7970)

This commit is contained in:
Alex Waygood
2022-05-27 19:02:00 +01:00
committed by GitHub
parent f52da1e8b0
commit ceccc655db
6 changed files with 44 additions and 47 deletions

View File

@@ -1,7 +1,6 @@
import io
import os
import sys
from _typeshed import Self, StrPath, WriteableBuffer
from _typeshed import BytesPath, GenericPath, Self, StrPath, WriteableBuffer
from collections.abc import Iterable, Iterator
from types import TracebackType
from typing import IO, Any, AnyStr, Generic, overload
@@ -31,7 +30,6 @@ TMP_MAX: int
tempdir: str | None
template: str
_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"]
@@ -44,7 +42,7 @@ if sys.version_info >= (3, 8):
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
*,
errors: str | None = ...,
@@ -57,7 +55,7 @@ if sys.version_info >= (3, 8):
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
*,
errors: str | None = ...,
@@ -70,7 +68,7 @@ if sys.version_info >= (3, 8):
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
*,
errors: str | None = ...,
@@ -85,7 +83,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
) -> _TemporaryFileWrapper[str]: ...
@overload
@@ -96,7 +94,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
) -> _TemporaryFileWrapper[bytes]: ...
@overload
@@ -107,7 +105,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
delete: bool = ...,
) -> _TemporaryFileWrapper[Any]: ...
@@ -123,7 +121,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
*,
errors: str | None = ...,
) -> IO[str]: ...
@@ -135,7 +133,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
*,
errors: str | None = ...,
) -> IO[bytes]: ...
@@ -147,7 +145,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
*,
errors: str | None = ...,
) -> IO[Any]: ...
@@ -160,7 +158,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
) -> IO[str]: ...
@overload
def TemporaryFile(
@@ -170,7 +168,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
) -> IO[bytes]: ...
@overload
def TemporaryFile(
@@ -180,7 +178,7 @@ else:
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[AnyStr] | None = ...,
) -> IO[Any]: ...
class _TemporaryFileWrapper(Generic[AnyStr], IO[AnyStr]):
@@ -367,14 +365,16 @@ class TemporaryDirectory(Generic[AnyStr]):
self,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: _Dir[AnyStr] | None = ...,
dir: GenericPath[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: _Dir[AnyStr] | None = ...) -> None: ...
def __init__(
self, suffix: AnyStr | None = ..., prefix: AnyStr | None = ..., dir: GenericPath[AnyStr] | None = ...
) -> None: ...
def cleanup(self) -> None: ...
def __enter__(self) -> AnyStr: ...
@@ -385,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: _Dir[str] | None = ..., text: bool = ...
suffix: str | None = ..., prefix: str | None = ..., dir: StrPath | None = ..., text: bool = ...
) -> tuple[int, str]: ...
@overload
def mkstemp(
suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _Dir[bytes] | None = ..., text: bool = ...
suffix: bytes | None = ..., prefix: bytes | None = ..., dir: BytesPath | 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: _Dir[str] | None = ...) -> str: ... # type: ignore[misc]
def mkdtemp(suffix: str | None = ..., prefix: str | None = ..., dir: StrPath | None = ...) -> str: ... # type: ignore[misc]
@overload
def mkdtemp(suffix: bytes | None = ..., prefix: bytes | None = ..., dir: _Dir[bytes] | None = ...) -> bytes: ...
def mkdtemp(suffix: bytes | None = ..., prefix: bytes | None = ..., dir: BytesPath | None = ...) -> bytes: ...
def mktemp(suffix: str = ..., prefix: str = ..., dir: StrPath | None = ...) -> str: ...
def gettempdirb() -> bytes: ...
def gettempprefixb() -> bytes: ...