Skip to content

Commit 7bd87c7

Browse files
author
mypybot
committed
Sync typeshed
Source commit: python/typeshed@1012870
1 parent 5e119d0 commit 7bd87c7

18 files changed

+184
-68
lines changed

mypy/typeshed/stdlib/_asyncio.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sys
22
from asyncio.events import AbstractEventLoop
3-
from collections.abc import Awaitable, Callable, Coroutine, Generator, Iterable
3+
from collections.abc import Awaitable, Callable, Coroutine, Generator
44
from contextvars import Context
55
from types import FrameType
66
from typing import Any, Literal, TextIO, TypeVar
@@ -13,7 +13,7 @@ _T = TypeVar("_T")
1313
_T_co = TypeVar("_T_co", covariant=True)
1414
_TaskYieldType: TypeAlias = Future[object] | None
1515

16-
class Future(Awaitable[_T], Iterable[_T]):
16+
class Future(Awaitable[_T]):
1717
_state: str
1818
@property
1919
def _exception(self) -> BaseException | None: ...

mypy/typeshed/stdlib/_ctypes.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,11 @@ class Array(_CData, Generic[_CT], metaclass=_PyCArrayType):
286286
def _type_(self) -> type[_CT]: ...
287287
@_type_.setter
288288
def _type_(self, value: type[_CT]) -> None: ...
289-
raw: bytes # Note: only available if _CT == c_char
289+
# Note: only available if _CT == c_char
290+
@property
291+
def raw(self) -> bytes: ...
292+
@raw.setter
293+
def raw(self, value: ReadableBuffer) -> None: ...
290294
value: Any # Note: bytes if _CT == c_char, str if _CT == c_wchar, unavailable otherwise
291295
# TODO These methods cannot be annotated correctly at the moment.
292296
# All of these "Any"s stand for the array's element type, but it's not possible to use _CT
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
from typing import Any, SupportsIndex
1+
from typing import Any, Literal, SupportsIndex
2+
from typing_extensions import TypeAlias
3+
4+
_UnboundOp: TypeAlias = Literal[1, 2, 3]
25

36
class QueueError(RuntimeError): ...
47
class QueueNotFoundError(QueueError): ...
58

69
def bind(qid: SupportsIndex) -> None: ...
7-
def create(maxsize: SupportsIndex, fmt: SupportsIndex) -> int: ...
10+
def create(maxsize: SupportsIndex, fmt: SupportsIndex, unboundop: _UnboundOp) -> int: ...
811
def destroy(qid: SupportsIndex) -> None: ...
9-
def get(qid: SupportsIndex) -> tuple[Any, int]: ...
12+
def get(qid: SupportsIndex) -> tuple[Any, int, _UnboundOp | None]: ...
1013
def get_count(qid: SupportsIndex) -> int: ...
1114
def get_maxsize(qid: SupportsIndex) -> int: ...
12-
def get_queue_defaults(qid: SupportsIndex) -> tuple[int]: ...
15+
def get_queue_defaults(qid: SupportsIndex) -> tuple[int, _UnboundOp]: ...
1316
def is_full(qid: SupportsIndex) -> bool: ...
14-
def list_all() -> list[tuple[int, int]]: ...
15-
def put(qid: SupportsIndex, obj: Any, fmt: SupportsIndex) -> None: ...
17+
def list_all() -> list[tuple[int, int, _UnboundOp]]: ...
18+
def put(qid: SupportsIndex, obj: Any, fmt: SupportsIndex, unboundop: _UnboundOp) -> None: ...
1619
def release(qid: SupportsIndex) -> None: ...

mypy/typeshed/stdlib/_interpreters.pyi

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ def get_main() -> tuple[int, int]: ...
2121
def is_running(id: SupportsIndex, *, restrict: bool = False) -> bool: ...
2222
def get_config(id: SupportsIndex, *, restrict: bool = False) -> types.SimpleNamespace: ...
2323
def whence(id: SupportsIndex) -> int: ...
24-
def exec(id: SupportsIndex, code: str, shared: bool | None = None, *, restrict: bool = False) -> None: ...
24+
def exec(
25+
id: SupportsIndex, code: str | types.CodeType | Callable[[], object], shared: bool | None = None, *, restrict: bool = False
26+
) -> None | types.SimpleNamespace: ...
2527
def call(
2628
id: SupportsIndex,
2729
callable: Callable[..., object],

mypy/typeshed/stdlib/_ssl.pyi

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,7 @@ OP_SINGLE_ECDH_USE: int
240240
OP_NO_COMPRESSION: int
241241
OP_ENABLE_MIDDLEBOX_COMPAT: int
242242
OP_NO_RENEGOTIATION: int
243-
if sys.version_info >= (3, 11):
244-
OP_IGNORE_UNEXPECTED_EOF: int
245-
elif sys.version_info >= (3, 8) and sys.platform == "linux":
243+
if sys.version_info >= (3, 11) or sys.platform == "linux":
246244
OP_IGNORE_UNEXPECTED_EOF: int
247245
if sys.version_info >= (3, 12):
248246
OP_LEGACY_SERVER_CONNECT: int

mypy/typeshed/stdlib/builtins.pyi

Lines changed: 105 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ from typing import ( # noqa: Y022
6464
from typing_extensions import ( # noqa: Y023
6565
Concatenate,
6666
Literal,
67+
LiteralString,
6768
ParamSpec,
6869
Self,
6970
TypeAlias,
@@ -441,16 +442,31 @@ class str(Sequence[str]):
441442
def __new__(cls, object: object = ...) -> Self: ...
442443
@overload
443444
def __new__(cls, object: ReadableBuffer, encoding: str = ..., errors: str = ...) -> Self: ...
445+
@overload
446+
def capitalize(self: LiteralString) -> LiteralString: ...
447+
@overload
444448
def capitalize(self) -> str: ... # type: ignore[misc]
449+
@overload
450+
def casefold(self: LiteralString) -> LiteralString: ...
451+
@overload
445452
def casefold(self) -> str: ... # type: ignore[misc]
453+
@overload
454+
def center(self: LiteralString, width: SupportsIndex, fillchar: LiteralString = " ", /) -> LiteralString: ...
455+
@overload
446456
def center(self, width: SupportsIndex, fillchar: str = " ", /) -> str: ... # type: ignore[misc]
447457
def count(self, sub: str, start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /) -> int: ...
448458
def encode(self, encoding: str = "utf-8", errors: str = "strict") -> bytes: ...
449459
def endswith(
450460
self, suffix: str | tuple[str, ...], start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /
451461
) -> bool: ...
462+
@overload
463+
def expandtabs(self: LiteralString, tabsize: SupportsIndex = 8) -> LiteralString: ...
464+
@overload
452465
def expandtabs(self, tabsize: SupportsIndex = 8) -> str: ... # type: ignore[misc]
453466
def find(self, sub: str, start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /) -> int: ...
467+
@overload
468+
def format(self: LiteralString, *args: LiteralString, **kwargs: LiteralString) -> LiteralString: ...
469+
@overload
454470
def format(self, *args: object, **kwargs: object) -> str: ...
455471
def format_map(self, mapping: _FormatMapMapping, /) -> str: ...
456472
def index(self, sub: str, start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /) -> int: ...
@@ -466,35 +482,99 @@ class str(Sequence[str]):
466482
def isspace(self) -> bool: ...
467483
def istitle(self) -> bool: ...
468484
def isupper(self) -> bool: ...
485+
@overload
486+
def join(self: LiteralString, iterable: Iterable[LiteralString], /) -> LiteralString: ...
487+
@overload
469488
def join(self, iterable: Iterable[str], /) -> str: ... # type: ignore[misc]
489+
@overload
490+
def ljust(self: LiteralString, width: SupportsIndex, fillchar: LiteralString = " ", /) -> LiteralString: ...
491+
@overload
470492
def ljust(self, width: SupportsIndex, fillchar: str = " ", /) -> str: ... # type: ignore[misc]
493+
@overload
494+
def lower(self: LiteralString) -> LiteralString: ...
495+
@overload
471496
def lower(self) -> str: ... # type: ignore[misc]
497+
@overload
498+
def lstrip(self: LiteralString, chars: LiteralString | None = None, /) -> LiteralString: ...
499+
@overload
472500
def lstrip(self, chars: str | None = None, /) -> str: ... # type: ignore[misc]
501+
@overload
502+
def partition(self: LiteralString, sep: LiteralString, /) -> tuple[LiteralString, LiteralString, LiteralString]: ...
503+
@overload
473504
def partition(self, sep: str, /) -> tuple[str, str, str]: ... # type: ignore[misc]
474505
if sys.version_info >= (3, 13):
506+
@overload
507+
def replace(
508+
self: LiteralString, old: LiteralString, new: LiteralString, /, count: SupportsIndex = -1
509+
) -> LiteralString: ...
510+
@overload
475511
def replace(self, old: str, new: str, /, count: SupportsIndex = -1) -> str: ... # type: ignore[misc]
476512
else:
513+
@overload
514+
def replace(
515+
self: LiteralString, old: LiteralString, new: LiteralString, count: SupportsIndex = -1, /
516+
) -> LiteralString: ...
517+
@overload
477518
def replace(self, old: str, new: str, count: SupportsIndex = -1, /) -> str: ... # type: ignore[misc]
478519
if sys.version_info >= (3, 9):
520+
@overload
521+
def removeprefix(self: LiteralString, prefix: LiteralString, /) -> LiteralString: ...
522+
@overload
479523
def removeprefix(self, prefix: str, /) -> str: ... # type: ignore[misc]
524+
@overload
525+
def removesuffix(self: LiteralString, suffix: LiteralString, /) -> LiteralString: ...
526+
@overload
480527
def removesuffix(self, suffix: str, /) -> str: ... # type: ignore[misc]
481528

482529
def rfind(self, sub: str, start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /) -> int: ...
483530
def rindex(self, sub: str, start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /) -> int: ...
531+
@overload
532+
def rjust(self: LiteralString, width: SupportsIndex, fillchar: LiteralString = " ", /) -> LiteralString: ...
533+
@overload
484534
def rjust(self, width: SupportsIndex, fillchar: str = " ", /) -> str: ... # type: ignore[misc]
535+
@overload
536+
def rpartition(self: LiteralString, sep: LiteralString, /) -> tuple[LiteralString, LiteralString, LiteralString]: ...
537+
@overload
485538
def rpartition(self, sep: str, /) -> tuple[str, str, str]: ... # type: ignore[misc]
539+
@overload
540+
def rsplit(self: LiteralString, sep: LiteralString | None = None, maxsplit: SupportsIndex = -1) -> list[LiteralString]: ...
541+
@overload
486542
def rsplit(self, sep: str | None = None, maxsplit: SupportsIndex = -1) -> list[str]: ... # type: ignore[misc]
543+
@overload
544+
def rstrip(self: LiteralString, chars: LiteralString | None = None, /) -> LiteralString: ...
545+
@overload
487546
def rstrip(self, chars: str | None = None, /) -> str: ... # type: ignore[misc]
547+
@overload
548+
def split(self: LiteralString, sep: LiteralString | None = None, maxsplit: SupportsIndex = -1) -> list[LiteralString]: ...
549+
@overload
488550
def split(self, sep: str | None = None, maxsplit: SupportsIndex = -1) -> list[str]: ... # type: ignore[misc]
551+
@overload
552+
def splitlines(self: LiteralString, keepends: bool = False) -> list[LiteralString]: ...
553+
@overload
489554
def splitlines(self, keepends: bool = False) -> list[str]: ... # type: ignore[misc]
490555
def startswith(
491556
self, prefix: str | tuple[str, ...], start: SupportsIndex | None = ..., end: SupportsIndex | None = ..., /
492557
) -> bool: ...
558+
@overload
559+
def strip(self: LiteralString, chars: LiteralString | None = None, /) -> LiteralString: ...
560+
@overload
493561
def strip(self, chars: str | None = None, /) -> str: ... # type: ignore[misc]
562+
@overload
563+
def swapcase(self: LiteralString) -> LiteralString: ...
564+
@overload
494565
def swapcase(self) -> str: ... # type: ignore[misc]
566+
@overload
567+
def title(self: LiteralString) -> LiteralString: ...
568+
@overload
495569
def title(self) -> str: ... # type: ignore[misc]
496570
def translate(self, table: _TranslateTable, /) -> str: ...
571+
@overload
572+
def upper(self: LiteralString) -> LiteralString: ...
573+
@overload
497574
def upper(self) -> str: ... # type: ignore[misc]
575+
@overload
576+
def zfill(self: LiteralString, width: SupportsIndex, /) -> LiteralString: ...
577+
@overload
498578
def zfill(self, width: SupportsIndex, /) -> str: ... # type: ignore[misc]
499579
@staticmethod
500580
@overload
@@ -505,21 +585,39 @@ class str(Sequence[str]):
505585
@staticmethod
506586
@overload
507587
def maketrans(x: str, y: str, z: str, /) -> dict[int, int | None]: ...
588+
@overload
589+
def __add__(self: LiteralString, value: LiteralString, /) -> LiteralString: ...
590+
@overload
508591
def __add__(self, value: str, /) -> str: ... # type: ignore[misc]
509592
# Incompatible with Sequence.__contains__
510593
def __contains__(self, key: str, /) -> bool: ... # type: ignore[override]
511594
def __eq__(self, value: object, /) -> bool: ...
512595
def __ge__(self, value: str, /) -> bool: ...
513-
def __getitem__(self, key: SupportsIndex | slice, /) -> str: ...
596+
@overload
597+
def __getitem__(self: LiteralString, key: SupportsIndex | slice, /) -> LiteralString: ...
598+
@overload
599+
def __getitem__(self, key: SupportsIndex | slice, /) -> str: ... # type: ignore[misc]
514600
def __gt__(self, value: str, /) -> bool: ...
515601
def __hash__(self) -> int: ...
602+
@overload
603+
def __iter__(self: LiteralString) -> Iterator[LiteralString]: ...
604+
@overload
516605
def __iter__(self) -> Iterator[str]: ... # type: ignore[misc]
517606
def __le__(self, value: str, /) -> bool: ...
518607
def __len__(self) -> int: ...
519608
def __lt__(self, value: str, /) -> bool: ...
609+
@overload
610+
def __mod__(self: LiteralString, value: LiteralString | tuple[LiteralString, ...], /) -> LiteralString: ...
611+
@overload
520612
def __mod__(self, value: Any, /) -> str: ...
613+
@overload
614+
def __mul__(self: LiteralString, value: SupportsIndex, /) -> LiteralString: ...
615+
@overload
521616
def __mul__(self, value: SupportsIndex, /) -> str: ... # type: ignore[misc]
522617
def __ne__(self, value: object, /) -> bool: ...
618+
@overload
619+
def __rmul__(self: LiteralString, value: SupportsIndex, /) -> LiteralString: ...
620+
@overload
523621
def __rmul__(self, value: SupportsIndex, /) -> str: ... # type: ignore[misc]
524622
def __getnewargs__(self) -> tuple[str]: ...
525623

@@ -1130,7 +1228,7 @@ class frozenset(AbstractSet[_T_co]):
11301228
if sys.version_info >= (3, 9):
11311229
def __class_getitem__(cls, item: Any, /) -> GenericAlias: ...
11321230

1133-
class enumerate(Iterator[tuple[int, _T]]):
1231+
class enumerate(Generic[_T]):
11341232
def __new__(cls, iterable: Iterable[_T], start: int = 0) -> Self: ...
11351233
def __iter__(self) -> Self: ...
11361234
def __next__(self) -> tuple[int, _T]: ...
@@ -1324,7 +1422,7 @@ else:
13241422

13251423
exit: _sitebuiltins.Quitter
13261424

1327-
class filter(Iterator[_T]):
1425+
class filter(Generic[_T]):
13281426
@overload
13291427
def __new__(cls, function: None, iterable: Iterable[_T | None], /) -> Self: ...
13301428
@overload
@@ -1389,7 +1487,7 @@ license: _sitebuiltins._Printer
13891487

13901488
def locals() -> dict[str, Any]: ...
13911489

1392-
class map(Iterator[_S]):
1490+
class map(Generic[_S]):
13931491
@overload
13941492
def __new__(cls, func: Callable[[_T1], _S], iterable: Iterable[_T1], /) -> Self: ...
13951493
@overload
@@ -1632,7 +1730,7 @@ def pow(base: _SupportsSomeKindOfPow, exp: complex, mod: None = None) -> complex
16321730

16331731
quit: _sitebuiltins.Quitter
16341732

1635-
class reversed(Iterator[_T]):
1733+
class reversed(Generic[_T]):
16361734
@overload
16371735
def __new__(cls, sequence: Reversible[_T], /) -> Iterator[_T]: ... # type: ignore[misc]
16381736
@overload
@@ -1680,7 +1778,7 @@ _SupportsSumNoDefaultT = TypeVar("_SupportsSumNoDefaultT", bound=_SupportsSumWit
16801778
# without creating many false-positive errors (see #7578).
16811779
# Instead, we special-case the most common examples of this: bool and literal integers.
16821780
@overload
1683-
def sum(iterable: Iterable[bool], /, start: int = 0) -> int: ...
1781+
def sum(iterable: Iterable[bool | _LiteralInteger], /, start: int = 0) -> int: ...
16841782
@overload
16851783
def sum(iterable: Iterable[_SupportsSumNoDefaultT], /) -> _SupportsSumNoDefaultT | Literal[0]: ...
16861784
@overload
@@ -1693,7 +1791,7 @@ def vars(object: type, /) -> types.MappingProxyType[str, Any]: ...
16931791
@overload
16941792
def vars(object: Any = ..., /) -> dict[str, Any]: ...
16951793

1696-
class zip(Iterator[_T_co]):
1794+
class zip(Generic[_T_co]):
16971795
if sys.version_info >= (3, 10):
16981796
@overload
16991797
def __new__(cls, *, strict: bool = ...) -> zip[Any]: ...

mypy/typeshed/stdlib/csv.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ else:
2525
from _csv import _reader as Reader, _writer as Writer
2626

2727
from _typeshed import SupportsWrite
28-
from collections.abc import Collection, Iterable, Iterator, Mapping, Sequence
28+
from collections.abc import Collection, Iterable, Mapping, Sequence
2929
from typing import Any, Generic, Literal, TypeVar, overload
3030
from typing_extensions import Self
3131

@@ -75,7 +75,7 @@ class excel(Dialect): ...
7575
class excel_tab(excel): ...
7676
class unix_dialect(Dialect): ...
7777

78-
class DictReader(Iterator[dict[_T | Any, str | Any]], Generic[_T]):
78+
class DictReader(Generic[_T]):
7979
fieldnames: Sequence[_T] | None
8080
restkey: _T | None
8181
restval: str | Any | None

mypy/typeshed/stdlib/ctypes/__init__.pyi

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,14 @@ def ARRAY(typ: _CT, len: int) -> Array[_CT]: ... # Soft Deprecated, no plans to
159159
if sys.platform == "win32":
160160
def DllCanUnloadNow() -> int: ...
161161
def DllGetClassObject(rclsid: Any, riid: Any, ppv: Any) -> int: ... # TODO not documented
162-
def GetLastError() -> int: ...
162+
163+
# Actually just an instance of _NamedFuncPointer (aka _CDLLFuncPointer),
164+
# but we want to set a more specific __call__
165+
@type_check_only
166+
class _GetLastErrorFunctionType(_NamedFuncPointer):
167+
def __call__(self) -> int: ...
168+
169+
GetLastError: _GetLastErrorFunctionType
163170

164171
# Actually just an instance of _CFunctionType, but we want to set a more
165172
# specific __call__.

mypy/typeshed/stdlib/fileinput.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import sys
22
from _typeshed import AnyStr_co, StrOrBytesPath
3-
from collections.abc import Callable, Iterable, Iterator
3+
from collections.abc import Callable, Iterable
44
from types import TracebackType
5-
from typing import IO, Any, AnyStr, Literal, Protocol, overload
5+
from typing import IO, Any, AnyStr, Generic, Literal, Protocol, overload
66
from typing_extensions import Self, TypeAlias
77

88
if sys.version_info >= (3, 9):
@@ -107,7 +107,7 @@ def fileno() -> int: ...
107107
def isfirstline() -> bool: ...
108108
def isstdin() -> bool: ...
109109

110-
class FileInput(Iterator[AnyStr]):
110+
class FileInput(Generic[AnyStr]):
111111
if sys.version_info >= (3, 10):
112112
# encoding and errors are added
113113
@overload

0 commit comments

Comments
 (0)