mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-16 00:37:10 +08:00
PEP 604: Remove some more uses of Union/Optional (#7515)
The following patterns still break mypy: 1. `type[]` at top level fails 2. `tuple[T1, T2]` at top level fails (but `tuple[T1, ...]` is fine) 3. `T1 | Callable[..., T2 | T3]` fails, but only <=3.9 This PR cleans up usage of `Union` and `Optional` outside these patterns.
This commit is contained in:
@@ -2,10 +2,10 @@ import socket
|
||||
import sys
|
||||
from builtins import type as Type # alias to avoid name clashes with property named "type"
|
||||
from types import TracebackType
|
||||
from typing import Any, BinaryIO, Iterable, NoReturn, Union, overload
|
||||
from typing import Any, BinaryIO, Iterable, NoReturn, overload
|
||||
|
||||
# These are based in socket, maybe move them out into _typeshed.pyi or such
|
||||
_Address = Union[tuple[Any, ...], str]
|
||||
_Address = tuple[Any, ...] | str
|
||||
_RetAddress = Any
|
||||
_WriteBuffer = bytearray | memoryview
|
||||
_CMSG = tuple[int, int, bytes]
|
||||
|
||||
@@ -32,7 +32,6 @@ from typing import (
|
||||
Protocol,
|
||||
Sequence,
|
||||
TypeVar,
|
||||
Union,
|
||||
overload,
|
||||
runtime_checkable,
|
||||
)
|
||||
@@ -832,16 +831,16 @@ def execlpe(file: StrOrBytesPath, __arg0: StrOrBytesPath, *args: Any) -> NoRetur
|
||||
# Not separating out PathLike[str] and PathLike[bytes] here because it doesn't make much difference
|
||||
# in practice, and doing so would explode the number of combinations in this already long union.
|
||||
# All these combinations are necessary due to list being invariant.
|
||||
_ExecVArgs = Union[
|
||||
tuple[StrOrBytesPath, ...],
|
||||
list[bytes],
|
||||
list[str],
|
||||
list[PathLike[Any]],
|
||||
list[bytes | str],
|
||||
list[bytes | PathLike[Any]],
|
||||
list[str | PathLike[Any]],
|
||||
list[bytes | str | PathLike[Any]],
|
||||
]
|
||||
_ExecVArgs = (
|
||||
tuple[StrOrBytesPath, ...]
|
||||
| list[bytes]
|
||||
| list[str]
|
||||
| list[PathLike[Any]]
|
||||
| list[bytes | str]
|
||||
| list[bytes | PathLike[Any]]
|
||||
| list[str | PathLike[Any]]
|
||||
| list[bytes | str | PathLike[Any]]
|
||||
)
|
||||
_ExecEnv = Mapping[bytes, bytes | str] | Mapping[str, bytes | str]
|
||||
|
||||
def execv(__path: StrOrBytesPath, __argv: _ExecVArgs) -> NoReturn: ...
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import sys
|
||||
from _typeshed import Self, SupportsWrite
|
||||
from types import FrameType, TracebackType
|
||||
from typing import IO, Any, Generator, Iterable, Iterator, Mapping, Optional, overload
|
||||
from typing import IO, Any, Generator, Iterable, Iterator, Mapping, overload
|
||||
from typing_extensions import Literal
|
||||
|
||||
__all__ = [
|
||||
@@ -26,7 +26,7 @@ __all__ = [
|
||||
"walk_tb",
|
||||
]
|
||||
|
||||
_PT = tuple[str, int, str, Optional[str]]
|
||||
_PT = tuple[str, int, str, str | None]
|
||||
|
||||
def print_tb(tb: TracebackType | None, limit: int | None = ..., file: IO[str] | None = ...) -> None: ...
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from abc import abstractmethod
|
||||
from types import TracebackType
|
||||
from typing import IO, Callable, MutableMapping, Optional
|
||||
from typing import IO, Callable, MutableMapping
|
||||
|
||||
from .headers import Headers
|
||||
from .types import ErrorStream, InputStream, StartResponse, WSGIApplication, WSGIEnvironment
|
||||
@@ -8,7 +8,7 @@ from .util import FileWrapper
|
||||
|
||||
__all__ = ["BaseHandler", "SimpleHandler", "BaseCGIHandler", "CGIHandler", "IISCGIHandler", "read_environ"]
|
||||
|
||||
_exc_info = tuple[Optional[type[BaseException]], Optional[BaseException], Optional[TracebackType]]
|
||||
_exc_info = tuple[type[BaseException] | None, BaseException | None, TracebackType | None]
|
||||
|
||||
def format_date_time(timestamp: float | None) -> str: ... # undocumented
|
||||
def read_environ() -> dict[str, str]: ...
|
||||
|
||||
@@ -13,8 +13,10 @@ class _SupportsTimeTuple(Protocol):
|
||||
def timetuple(self) -> time.struct_time: ...
|
||||
|
||||
_DateTimeComparable = DateTime | datetime | str | _SupportsTimeTuple
|
||||
_Marshallable = Union[None, bool, int, float, str, bytes, tuple[Any, ...], list[Any], dict[Any, Any], datetime, DateTime, Binary]
|
||||
_XMLDate = Union[int, datetime, tuple[int, ...], time.struct_time]
|
||||
_Marshallable = (
|
||||
bool | int | float | str | bytes | None | tuple[Any, ...] | list[Any] | dict[Any, Any] | datetime | DateTime | Binary
|
||||
)
|
||||
_XMLDate = int | datetime | tuple[int, ...] | time.struct_time
|
||||
_HostType = Union[tuple[str, dict[str, str]], str]
|
||||
|
||||
def escape(s: str) -> str: ... # undocumented
|
||||
|
||||
Reference in New Issue
Block a user