Skip to content

Commit a13b8b7

Browse files
author
mypybot
committed
Sync typeshed
Source commit: python/typeshed@3f727b0
1 parent 9934278 commit a13b8b7

File tree

23 files changed

+434
-216
lines changed

23 files changed

+434
-216
lines changed

mypy/typeshed/stdlib/VERSIONS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ asyncio.staggered: 3.8-
9595
asyncio.taskgroups: 3.11-
9696
asyncio.threads: 3.9-
9797
asyncio.timeouts: 3.11-
98+
asyncio.tools: 3.14-
9899
asyncio.trsock: 3.8-
99100
asyncore: 3.0-3.11
100101
atexit: 3.0-

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, GenericAlias
66
from typing import Any, Literal, TextIO, TypeVar
@@ -10,7 +10,7 @@ _T = TypeVar("_T")
1010
_T_co = TypeVar("_T_co", covariant=True)
1111
_TaskYieldType: TypeAlias = Future[object] | None
1212

13-
class Future(Awaitable[_T], Iterable[_T]):
13+
class Future(Awaitable[_T]):
1414
_state: str
1515
@property
1616
def _exception(self) -> BaseException | None: ...

mypy/typeshed/stdlib/_csv.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ else:
9090

9191
def writer(
9292
csvfile: SupportsWrite[str],
93+
/,
9394
dialect: _DialectLike = "excel",
9495
*,
9596
delimiter: str = ",",
@@ -103,6 +104,7 @@ def writer(
103104
) -> _writer: ...
104105
def reader(
105106
csvfile: Iterable[str],
107+
/,
106108
dialect: _DialectLike = "excel",
107109
*,
108110
delimiter: str = ",",

mypy/typeshed/stdlib/_ctypes.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,11 @@ class Array(_CData, Generic[_CT], metaclass=_PyCArrayType):
291291
def _type_(self) -> type[_CT]: ...
292292
@_type_.setter
293293
def _type_(self, value: type[_CT]) -> None: ...
294-
raw: bytes # Note: only available if _CT == c_char
294+
# Note: only available if _CT == c_char
295+
@property
296+
def raw(self) -> bytes: ...
297+
@raw.setter
298+
def raw(self, value: ReadableBuffer) -> None: ...
295299
value: Any # Note: bytes if _CT == c_char, str if _CT == c_wchar, unavailable otherwise
296300
# TODO: These methods cannot be annotated correctly at the moment.
297301
# All of these "Any"s stand for the array's element type, but it's not possible to use _CT

mypy/typeshed/stdlib/_zstd.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class ZstdCompressor:
5252
self, /, data: ReadableBuffer, mode: _ZstdCompressorContinue | _ZstdCompressorFlushBlock | _ZstdCompressorFlushFrame = 0
5353
) -> bytes: ...
5454
def flush(self, /, mode: _ZstdCompressorFlushBlock | _ZstdCompressorFlushFrame = 2) -> bytes: ...
55+
def set_pledged_input_size(self, size: int | None, /) -> None: ...
5556
@property
5657
def last_mode(self) -> _ZstdCompressorContinue | _ZstdCompressorFlushBlock | _ZstdCompressorFlushFrame: ...
5758

mypy/typeshed/stdlib/argparse.pyi

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import sys
22
from _typeshed import SupportsWrite, sentinel
33
from collections.abc import Callable, Generator, Iterable, Sequence
44
from re import Pattern
5-
from typing import IO, Any, ClassVar, Final, Generic, NewType, NoReturn, Protocol, TypeVar, overload
5+
from typing import IO, Any, ClassVar, Final, Generic, NoReturn, Protocol, TypeVar, overload
66
from typing_extensions import Self, TypeAlias, deprecated
77

88
__all__ = [
@@ -36,9 +36,7 @@ ONE_OR_MORE: Final = "+"
3636
OPTIONAL: Final = "?"
3737
PARSER: Final = "A..."
3838
REMAINDER: Final = "..."
39-
_SUPPRESS_T = NewType("_SUPPRESS_T", str)
40-
SUPPRESS: _SUPPRESS_T | str # not using Literal because argparse sometimes compares SUPPRESS with is
41-
# the | str is there so that foo = argparse.SUPPRESS; foo = "test" checks out in mypy
39+
SUPPRESS: Final = "==SUPPRESS=="
4240
ZERO_OR_MORE: Final = "*"
4341
_UNRECOGNIZED_ARGS_ATTR: Final = "_unrecognized_args" # undocumented
4442

@@ -81,7 +79,7 @@ class _ActionsContainer:
8179
# more precisely, Literal["?", "*", "+", "...", "A...", "==SUPPRESS=="],
8280
# but using this would make it hard to annotate callers that don't use a
8381
# literal argument and for subclasses to override this method.
84-
nargs: int | str | _SUPPRESS_T | None = None,
82+
nargs: int | str | None = None,
8583
const: Any = ...,
8684
default: Any = ...,
8785
type: _ActionType = ...,

mypy/typeshed/stdlib/ast.pyi

Lines changed: 43 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import ast
12
import builtins
23
import os
34
import sys
@@ -623,21 +624,6 @@ class AsyncWith(stmt):
623624
**kwargs: Unpack[_Attributes],
624625
) -> Self: ...
625626

626-
if sys.version_info >= (3, 10):
627-
class Match(stmt):
628-
__match_args__ = ("subject", "cases")
629-
subject: expr
630-
cases: list[match_case]
631-
if sys.version_info >= (3, 13):
632-
def __init__(self, subject: expr, cases: list[match_case] = ..., **kwargs: Unpack[_Attributes]) -> None: ...
633-
else:
634-
def __init__(self, subject: expr, cases: list[match_case], **kwargs: Unpack[_Attributes]) -> None: ...
635-
636-
if sys.version_info >= (3, 14):
637-
def __replace__(
638-
self, *, subject: expr = ..., cases: list[match_case] = ..., **kwargs: Unpack[_Attributes]
639-
) -> Self: ...
640-
641627
class Raise(stmt):
642628
if sys.version_info >= (3, 10):
643629
__match_args__ = ("exc", "cause")
@@ -1076,13 +1062,13 @@ if sys.version_info >= (3, 14):
10761062
value: expr
10771063
str: builtins.str
10781064
conversion: int
1079-
format_spec: builtins.str | None = None
1065+
format_spec: expr | None = None
10801066
def __init__(
10811067
self,
10821068
value: expr = ...,
10831069
str: builtins.str = ...,
10841070
conversion: int = ...,
1085-
format_spec: builtins.str | None = ...,
1071+
format_spec: expr | None = ...,
10861072
**kwargs: Unpack[_Attributes],
10871073
) -> None: ...
10881074
def __replace__(
@@ -1091,7 +1077,7 @@ if sys.version_info >= (3, 14):
10911077
value: expr = ...,
10921078
str: builtins.str = ...,
10931079
conversion: int = ...,
1094-
format_spec: builtins.str | None = ...,
1080+
format_spec: expr | None = ...,
10951081
**kwargs: Unpack[_Attributes],
10961082
) -> Self: ...
10971083

@@ -1135,13 +1121,13 @@ class Subscript(expr):
11351121
if sys.version_info >= (3, 10):
11361122
__match_args__ = ("value", "slice", "ctx")
11371123
value: expr
1138-
slice: _Slice
1124+
slice: expr
11391125
ctx: expr_context # Not present in Python < 3.13 if not passed to `__init__`
1140-
def __init__(self, value: expr, slice: _Slice, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ...
1126+
def __init__(self, value: expr, slice: expr, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ...
11411127

11421128
if sys.version_info >= (3, 14):
11431129
def __replace__(
1144-
self, *, value: expr = ..., slice: _Slice = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes]
1130+
self, *, value: expr = ..., slice: expr = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes]
11451131
) -> Self: ...
11461132

11471133
class Starred(expr):
@@ -1194,36 +1180,28 @@ class Tuple(expr):
11941180
@deprecated("Deprecated since Python 3.9.")
11951181
class slice(AST): ...
11961182

1197-
_Slice: typing_extensions.TypeAlias = expr
1198-
_SliceAttributes: typing_extensions.TypeAlias = _Attributes
1199-
1200-
class Slice(_Slice):
1183+
class Slice(expr):
12011184
if sys.version_info >= (3, 10):
12021185
__match_args__ = ("lower", "upper", "step")
12031186
lower: expr | None
12041187
upper: expr | None
12051188
step: expr | None
12061189
def __init__(
1207-
self, lower: expr | None = None, upper: expr | None = None, step: expr | None = None, **kwargs: Unpack[_SliceAttributes]
1190+
self, lower: expr | None = None, upper: expr | None = None, step: expr | None = None, **kwargs: Unpack[_Attributes]
12081191
) -> None: ...
12091192

12101193
if sys.version_info >= (3, 14):
12111194
def __replace__(
1212-
self,
1213-
*,
1214-
lower: expr | None = ...,
1215-
upper: expr | None = ...,
1216-
step: expr | None = ...,
1217-
**kwargs: Unpack[_SliceAttributes],
1195+
self, *, lower: expr | None = ..., upper: expr | None = ..., step: expr | None = ..., **kwargs: Unpack[_Attributes]
12181196
) -> Self: ...
12191197

12201198
@deprecated("Deprecated since Python 3.9. Use ast.Tuple instead.")
12211199
class ExtSlice(slice):
1222-
def __new__(cls, dims: Iterable[slice] = (), **kwargs: Unpack[_SliceAttributes]) -> Tuple: ... # type: ignore[misc]
1200+
def __new__(cls, dims: Iterable[slice] = (), **kwargs: Unpack[_Attributes]) -> Tuple: ... # type: ignore[misc]
12231201

12241202
@deprecated("Deprecated since Python 3.9. Use the index value directly instead.")
12251203
class Index(slice):
1226-
def __new__(cls, value: expr, **kwargs: Unpack[_SliceAttributes]) -> expr: ... # type: ignore[misc]
1204+
def __new__(cls, value: expr, **kwargs: Unpack[_Attributes]) -> expr: ... # type: ignore[misc]
12271205

12281206
class expr_context(AST): ...
12291207

@@ -1465,37 +1443,48 @@ class withitem(AST):
14651443
def __replace__(self, *, context_expr: expr = ..., optional_vars: expr | None = ...) -> Self: ...
14661444

14671445
if sys.version_info >= (3, 10):
1446+
class pattern(AST):
1447+
lineno: int
1448+
col_offset: int
1449+
end_lineno: int
1450+
end_col_offset: int
1451+
def __init__(self, **kwargs: Unpack[_Attributes[int]]) -> None: ...
1452+
1453+
if sys.version_info >= (3, 14):
1454+
def __replace__(
1455+
self, *, lineno: int = ..., col_offset: int = ..., end_lineno: int = ..., end_col_offset: int = ...
1456+
) -> Self: ...
1457+
14681458
class match_case(AST):
14691459
__match_args__ = ("pattern", "guard", "body")
1470-
pattern: _Pattern
1460+
pattern: ast.pattern
14711461
guard: expr | None
14721462
body: list[stmt]
14731463
if sys.version_info >= (3, 13):
1474-
def __init__(self, pattern: _Pattern, guard: expr | None = None, body: list[stmt] = ...) -> None: ...
1475-
else:
1464+
def __init__(self, pattern: ast.pattern, guard: expr | None = None, body: list[stmt] = ...) -> None: ...
1465+
elif sys.version_info >= (3, 10):
14761466
@overload
1477-
def __init__(self, pattern: _Pattern, guard: expr | None, body: list[stmt]) -> None: ...
1467+
def __init__(self, pattern: ast.pattern, guard: expr | None, body: list[stmt]) -> None: ...
14781468
@overload
1479-
def __init__(self, pattern: _Pattern, guard: expr | None = None, *, body: list[stmt]) -> None: ...
1469+
def __init__(self, pattern: ast.pattern, guard: expr | None = None, *, body: list[stmt]) -> None: ...
14801470

14811471
if sys.version_info >= (3, 14):
1482-
def __replace__(self, *, pattern: _Pattern = ..., guard: expr | None = ..., body: list[stmt] = ...) -> Self: ...
1472+
def __replace__(self, *, pattern: ast.pattern = ..., guard: expr | None = ..., body: list[stmt] = ...) -> Self: ...
14831473

1484-
class pattern(AST):
1485-
lineno: int
1486-
col_offset: int
1487-
end_lineno: int
1488-
end_col_offset: int
1489-
def __init__(self, **kwargs: Unpack[_Attributes[int]]) -> None: ...
1474+
class Match(stmt):
1475+
__match_args__ = ("subject", "cases")
1476+
subject: expr
1477+
cases: list[match_case]
1478+
if sys.version_info >= (3, 13):
1479+
def __init__(self, subject: expr, cases: list[match_case] = ..., **kwargs: Unpack[_Attributes]) -> None: ...
1480+
else:
1481+
def __init__(self, subject: expr, cases: list[match_case], **kwargs: Unpack[_Attributes]) -> None: ...
14901482

14911483
if sys.version_info >= (3, 14):
14921484
def __replace__(
1493-
self, *, lineno: int = ..., col_offset: int = ..., end_lineno: int = ..., end_col_offset: int = ...
1485+
self, *, subject: expr = ..., cases: list[match_case] = ..., **kwargs: Unpack[_Attributes]
14941486
) -> Self: ...
14951487

1496-
# Without the alias, Pyright complains variables named pattern are recursively defined
1497-
_Pattern: typing_extensions.TypeAlias = pattern
1498-
14991488
class MatchValue(pattern):
15001489
__match_args__ = ("value",)
15011490
value: expr
@@ -1590,22 +1579,22 @@ if sys.version_info >= (3, 10):
15901579
class MatchStar(pattern):
15911580
__match_args__ = ("name",)
15921581
name: str | None
1593-
def __init__(self, name: str | None, **kwargs: Unpack[_Attributes[int]]) -> None: ...
1582+
def __init__(self, name: str | None = None, **kwargs: Unpack[_Attributes[int]]) -> None: ...
15941583

15951584
if sys.version_info >= (3, 14):
15961585
def __replace__(self, *, name: str | None = ..., **kwargs: Unpack[_Attributes[int]]) -> Self: ...
15971586

15981587
class MatchAs(pattern):
15991588
__match_args__ = ("pattern", "name")
1600-
pattern: _Pattern | None
1589+
pattern: ast.pattern | None
16011590
name: str | None
16021591
def __init__(
1603-
self, pattern: _Pattern | None = None, name: str | None = None, **kwargs: Unpack[_Attributes[int]]
1592+
self, pattern: ast.pattern | None = None, name: str | None = None, **kwargs: Unpack[_Attributes[int]]
16041593
) -> None: ...
16051594

16061595
if sys.version_info >= (3, 14):
16071596
def __replace__(
1608-
self, *, pattern: _Pattern | None = ..., name: str | None = ..., **kwargs: Unpack[_Attributes[int]]
1597+
self, *, pattern: ast.pattern | None = ..., name: str | None = ..., **kwargs: Unpack[_Attributes[int]]
16091598
) -> Self: ...
16101599

16111600
class MatchOr(pattern):
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from collections.abc import Iterable
2+
from enum import Enum
3+
from typing import NamedTuple, SupportsIndex, type_check_only
4+
5+
@type_check_only
6+
class _AwaitedInfo(NamedTuple): # AwaitedInfo_Type from _remote_debugging
7+
thread_id: int
8+
awaited_by: list[_TaskInfo]
9+
10+
@type_check_only
11+
class _TaskInfo(NamedTuple): # TaskInfo_Type from _remote_debugging
12+
task_id: int
13+
task_name: str
14+
coroutine_stack: list[_CoroInfo]
15+
awaited_by: list[_CoroInfo]
16+
17+
@type_check_only
18+
class _CoroInfo(NamedTuple): # CoroInfo_Type from _remote_debugging
19+
call_stack: list[_FrameInfo]
20+
task_name: int | str
21+
22+
@type_check_only
23+
class _FrameInfo(NamedTuple): # FrameInfo_Type from _remote_debugging
24+
filename: str
25+
lineno: int
26+
funcname: str
27+
28+
class NodeType(Enum):
29+
COROUTINE = 1
30+
TASK = 2
31+
32+
class CycleFoundException(Exception):
33+
cycles: list[list[int]]
34+
id2name: dict[int, str]
35+
def __init__(self, cycles: list[list[int]], id2name: dict[int, str]) -> None: ...
36+
37+
def get_all_awaited_by(pid: SupportsIndex) -> list[_AwaitedInfo]: ...
38+
def build_async_tree(result: Iterable[_AwaitedInfo], task_emoji: str = "(T)", cor_emoji: str = "") -> list[list[str]]: ...
39+
def build_task_table(result: Iterable[_AwaitedInfo]) -> list[list[int | str]]: ...
40+
def display_awaited_by_tasks_table(pid: SupportsIndex) -> None: ...
41+
def display_awaited_by_tasks_tree(pid: SupportsIndex) -> None: ...

0 commit comments

Comments
 (0)