Skip to content

Commit ae6fa93

Browse files
author
mypybot
committed
Sync typeshed
Source commit: python/typeshed@87d2683
1 parent d3427c1 commit ae6fa93

File tree

16 files changed

+334
-124
lines changed

16 files changed

+334
-124
lines changed

mypy/typeshed/stdlib/_typeshed/__init__.pyi

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,29 @@ else:
236236
ReadableBuffer: TypeAlias = ReadOnlyBuffer | WriteableBuffer # stable
237237
_BufferWithLen: TypeAlias = ReadableBuffer # not stable # noqa: Y047
238238

239+
# Anything that implements the read-write buffer interface, and can be sliced/indexed.
240+
SliceableBuffer: TypeAlias = bytes | bytearray | memoryview | array.array[Any] | mmap.mmap
241+
IndexableBuffer: TypeAlias = bytes | bytearray | memoryview | array.array[Any] | mmap.mmap
242+
# https://github.com/python/typeshed/pull/9115#issuecomment-1304905864
243+
# Post PEP 688, they should be rewritten as such:
244+
# from collections.abc import Sequence
245+
# from typing import Sized, overload
246+
# class SliceableBuffer(Protocol):
247+
# def __buffer__(self, __flags: int) -> memoryview: ...
248+
# def __getitem__(self, __slice: slice) -> Sequence[int]: ...
249+
# class IndexableBuffer(Protocol):
250+
# def __buffer__(self, __flags: int) -> memoryview: ...
251+
# def __getitem__(self, __i: int) -> int: ...
252+
# class SupportsGetItemBuffer(SliceableBuffer, IndexableBuffer, Protocol):
253+
# def __buffer__(self, __flags: int) -> memoryview: ...
254+
# def __contains__(self, __x: Any) -> bool: ...
255+
# @overload
256+
# def __getitem__(self, __slice: slice) -> Sequence[int]: ...
257+
# @overload
258+
# def __getitem__(self, __i: int) -> int: ...
259+
# class SizedBuffer(Sized, Protocol): # instead of _BufferWithLen
260+
# def __buffer__(self, __flags: int) -> memoryview: ...
261+
239262
ExcInfo: TypeAlias = tuple[type[BaseException], BaseException, TracebackType]
240263
OptExcInfo: TypeAlias = Union[ExcInfo, tuple[None, None, None]]
241264

@@ -276,5 +299,4 @@ StrOrLiteralStr = TypeVar("StrOrLiteralStr", LiteralString, str) # noqa: Y001
276299
ProfileFunction: TypeAlias = Callable[[FrameType, str, Any], object]
277300

278301
# Objects suitable to be passed to sys.settrace, threading.settrace, and similar
279-
# TODO: Ideally this would be a recursive type alias
280-
TraceFunction: TypeAlias = Callable[[FrameType, str, Any], Callable[[FrameType, str, Any], Any] | None]
302+
TraceFunction: TypeAlias = Callable[[FrameType, str, Any], TraceFunction | None]

mypy/typeshed/stdlib/abc.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class ABCMeta(type):
1818
else:
1919
def __new__(mcls: type[Self], name: str, bases: tuple[type, ...], namespace: dict[str, Any], **kwargs: Any) -> Self: ...
2020

21-
def __instancecheck__(cls: ABCMeta, instance: Any) -> Any: ...
22-
def __subclasscheck__(cls: ABCMeta, subclass: Any) -> Any: ...
21+
def __instancecheck__(cls: ABCMeta, instance: Any) -> bool: ...
22+
def __subclasscheck__(cls: ABCMeta, subclass: type) -> bool: ...
2323
def _dump_registry(cls: ABCMeta, file: SupportsWrite[str] | None = ...) -> None: ...
2424
def register(cls: ABCMeta, subclass: type[_T]) -> type[_T]: ...
2525

mypy/typeshed/stdlib/asyncio/base_events.pyi

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ from asyncio.events import AbstractEventLoop, AbstractServer, Handle, TimerHandl
55
from asyncio.futures import Future
66
from asyncio.protocols import BaseProtocol
77
from asyncio.tasks import Task
8-
from asyncio.transports import BaseTransport, ReadTransport, SubprocessTransport, WriteTransport
8+
from asyncio.transports import BaseTransport, DatagramTransport, ReadTransport, SubprocessTransport, Transport, WriteTransport
99
from collections.abc import Awaitable, Callable, Coroutine, Generator, Iterable, Sequence
1010
from contextvars import Context
1111
from socket import AddressFamily, SocketKind, _Address, _RetAddress, socket
@@ -129,7 +129,7 @@ class BaseEventLoop(AbstractEventLoop):
129129
ssl_shutdown_timeout: float | None = ...,
130130
happy_eyeballs_delay: float | None = ...,
131131
interleave: int | None = ...,
132-
) -> tuple[BaseTransport, _ProtocolT]: ...
132+
) -> tuple[Transport, _ProtocolT]: ...
133133
@overload
134134
async def create_connection(
135135
self,
@@ -148,7 +148,7 @@ class BaseEventLoop(AbstractEventLoop):
148148
ssl_shutdown_timeout: float | None = ...,
149149
happy_eyeballs_delay: float | None = ...,
150150
interleave: int | None = ...,
151-
) -> tuple[BaseTransport, _ProtocolT]: ...
151+
) -> tuple[Transport, _ProtocolT]: ...
152152
elif sys.version_info >= (3, 8):
153153
@overload
154154
async def create_connection(
@@ -167,7 +167,7 @@ class BaseEventLoop(AbstractEventLoop):
167167
ssl_handshake_timeout: float | None = ...,
168168
happy_eyeballs_delay: float | None = ...,
169169
interleave: int | None = ...,
170-
) -> tuple[BaseTransport, _ProtocolT]: ...
170+
) -> tuple[Transport, _ProtocolT]: ...
171171
@overload
172172
async def create_connection(
173173
self,
@@ -185,7 +185,7 @@ class BaseEventLoop(AbstractEventLoop):
185185
ssl_handshake_timeout: float | None = ...,
186186
happy_eyeballs_delay: float | None = ...,
187187
interleave: int | None = ...,
188-
) -> tuple[BaseTransport, _ProtocolT]: ...
188+
) -> tuple[Transport, _ProtocolT]: ...
189189
else:
190190
@overload
191191
async def create_connection(
@@ -202,7 +202,7 @@ class BaseEventLoop(AbstractEventLoop):
202202
local_addr: tuple[str, int] | None = ...,
203203
server_hostname: str | None = ...,
204204
ssl_handshake_timeout: float | None = ...,
205-
) -> tuple[BaseTransport, _ProtocolT]: ...
205+
) -> tuple[Transport, _ProtocolT]: ...
206206
@overload
207207
async def create_connection(
208208
self,
@@ -218,7 +218,7 @@ class BaseEventLoop(AbstractEventLoop):
218218
local_addr: None = ...,
219219
server_hostname: str | None = ...,
220220
ssl_handshake_timeout: float | None = ...,
221-
) -> tuple[BaseTransport, _ProtocolT]: ...
221+
) -> tuple[Transport, _ProtocolT]: ...
222222
if sys.version_info >= (3, 11):
223223
@overload
224224
async def create_server(
@@ -266,7 +266,7 @@ class BaseEventLoop(AbstractEventLoop):
266266
server_hostname: str | None = ...,
267267
ssl_handshake_timeout: float | None = ...,
268268
ssl_shutdown_timeout: float | None = ...,
269-
) -> BaseTransport: ...
269+
) -> Transport: ...
270270
async def connect_accepted_socket(
271271
self,
272272
protocol_factory: Callable[[], _ProtocolT],
@@ -275,7 +275,7 @@ class BaseEventLoop(AbstractEventLoop):
275275
ssl: _SSLContext = ...,
276276
ssl_handshake_timeout: float | None = ...,
277277
ssl_shutdown_timeout: float | None = ...,
278-
) -> tuple[BaseTransport, _ProtocolT]: ...
278+
) -> tuple[Transport, _ProtocolT]: ...
279279
else:
280280
@overload
281281
async def create_server(
@@ -320,21 +320,21 @@ class BaseEventLoop(AbstractEventLoop):
320320
server_side: bool = ...,
321321
server_hostname: str | None = ...,
322322
ssl_handshake_timeout: float | None = ...,
323-
) -> BaseTransport: ...
323+
) -> Transport: ...
324324
async def connect_accepted_socket(
325325
self,
326326
protocol_factory: Callable[[], _ProtocolT],
327327
sock: socket,
328328
*,
329329
ssl: _SSLContext = ...,
330330
ssl_handshake_timeout: float | None = ...,
331-
) -> tuple[BaseTransport, _ProtocolT]: ...
331+
) -> tuple[Transport, _ProtocolT]: ...
332332

333333
async def sock_sendfile(
334334
self, sock: socket, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool | None = ...
335335
) -> int: ...
336336
async def sendfile(
337-
self, transport: BaseTransport, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool = ...
337+
self, transport: WriteTransport, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool = ...
338338
) -> int: ...
339339
if sys.version_info >= (3, 11):
340340
async def create_datagram_endpoint( # type: ignore[override]
@@ -349,7 +349,7 @@ class BaseEventLoop(AbstractEventLoop):
349349
reuse_port: bool | None = ...,
350350
allow_broadcast: bool | None = ...,
351351
sock: socket | None = ...,
352-
) -> tuple[BaseTransport, _ProtocolT]: ...
352+
) -> tuple[DatagramTransport, _ProtocolT]: ...
353353
else:
354354
async def create_datagram_endpoint(
355355
self,
@@ -364,7 +364,7 @@ class BaseEventLoop(AbstractEventLoop):
364364
reuse_port: bool | None = ...,
365365
allow_broadcast: bool | None = ...,
366366
sock: socket | None = ...,
367-
) -> tuple[BaseTransport, _ProtocolT]: ...
367+
) -> tuple[DatagramTransport, _ProtocolT]: ...
368368
# Pipes and subprocesses.
369369
async def connect_read_pipe(
370370
self, protocol_factory: Callable[[], _ProtocolT], pipe: Any

mypy/typeshed/stdlib/asyncio/events.pyi

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ from .base_events import Server
1212
from .futures import Future
1313
from .protocols import BaseProtocol
1414
from .tasks import Task
15-
from .transports import BaseTransport, ReadTransport, SubprocessTransport, WriteTransport
15+
from .transports import BaseTransport, DatagramTransport, ReadTransport, SubprocessTransport, Transport, WriteTransport
1616
from .unix_events import AbstractChildWatcher
1717

1818
if sys.version_info >= (3, 8):
@@ -223,7 +223,7 @@ class AbstractEventLoop:
223223
ssl_shutdown_timeout: float | None = ...,
224224
happy_eyeballs_delay: float | None = ...,
225225
interleave: int | None = ...,
226-
) -> tuple[BaseTransport, _ProtocolT]: ...
226+
) -> tuple[Transport, _ProtocolT]: ...
227227
@overload
228228
@abstractmethod
229229
async def create_connection(
@@ -243,7 +243,7 @@ class AbstractEventLoop:
243243
ssl_shutdown_timeout: float | None = ...,
244244
happy_eyeballs_delay: float | None = ...,
245245
interleave: int | None = ...,
246-
) -> tuple[BaseTransport, _ProtocolT]: ...
246+
) -> tuple[Transport, _ProtocolT]: ...
247247
elif sys.version_info >= (3, 8):
248248
@overload
249249
@abstractmethod
@@ -263,7 +263,7 @@ class AbstractEventLoop:
263263
ssl_handshake_timeout: float | None = ...,
264264
happy_eyeballs_delay: float | None = ...,
265265
interleave: int | None = ...,
266-
) -> tuple[BaseTransport, _ProtocolT]: ...
266+
) -> tuple[Transport, _ProtocolT]: ...
267267
@overload
268268
@abstractmethod
269269
async def create_connection(
@@ -282,7 +282,7 @@ class AbstractEventLoop:
282282
ssl_handshake_timeout: float | None = ...,
283283
happy_eyeballs_delay: float | None = ...,
284284
interleave: int | None = ...,
285-
) -> tuple[BaseTransport, _ProtocolT]: ...
285+
) -> tuple[Transport, _ProtocolT]: ...
286286
else:
287287
@overload
288288
@abstractmethod
@@ -300,7 +300,7 @@ class AbstractEventLoop:
300300
local_addr: tuple[str, int] | None = ...,
301301
server_hostname: str | None = ...,
302302
ssl_handshake_timeout: float | None = ...,
303-
) -> tuple[BaseTransport, _ProtocolT]: ...
303+
) -> tuple[Transport, _ProtocolT]: ...
304304
@overload
305305
@abstractmethod
306306
async def create_connection(
@@ -317,7 +317,7 @@ class AbstractEventLoop:
317317
local_addr: None = ...,
318318
server_hostname: str | None = ...,
319319
ssl_handshake_timeout: float | None = ...,
320-
) -> tuple[BaseTransport, _ProtocolT]: ...
320+
) -> tuple[Transport, _ProtocolT]: ...
321321
if sys.version_info >= (3, 11):
322322
@overload
323323
@abstractmethod
@@ -360,15 +360,15 @@ class AbstractEventLoop:
360360
@abstractmethod
361361
async def start_tls(
362362
self,
363-
transport: BaseTransport,
363+
transport: WriteTransport,
364364
protocol: BaseProtocol,
365365
sslcontext: ssl.SSLContext,
366366
*,
367367
server_side: bool = ...,
368368
server_hostname: str | None = ...,
369369
ssl_handshake_timeout: float | None = ...,
370370
ssl_shutdown_timeout: float | None = ...,
371-
) -> BaseTransport: ...
371+
) -> Transport: ...
372372
async def create_unix_server(
373373
self,
374374
protocol_factory: _ProtocolFactory,
@@ -428,7 +428,7 @@ class AbstractEventLoop:
428428
server_side: bool = ...,
429429
server_hostname: str | None = ...,
430430
ssl_handshake_timeout: float | None = ...,
431-
) -> BaseTransport: ...
431+
) -> Transport: ...
432432
async def create_unix_server(
433433
self,
434434
protocol_factory: _ProtocolFactory,
@@ -449,7 +449,7 @@ class AbstractEventLoop:
449449
ssl: _SSLContext = ...,
450450
ssl_handshake_timeout: float | None = ...,
451451
ssl_shutdown_timeout: float | None = ...,
452-
) -> tuple[BaseTransport, _ProtocolT]: ...
452+
) -> tuple[Transport, _ProtocolT]: ...
453453
elif sys.version_info >= (3, 10):
454454
async def connect_accepted_socket(
455455
self,
@@ -458,7 +458,7 @@ class AbstractEventLoop:
458458
*,
459459
ssl: _SSLContext = ...,
460460
ssl_handshake_timeout: float | None = ...,
461-
) -> tuple[BaseTransport, _ProtocolT]: ...
461+
) -> tuple[Transport, _ProtocolT]: ...
462462
if sys.version_info >= (3, 11):
463463
async def create_unix_connection(
464464
self,
@@ -470,7 +470,7 @@ class AbstractEventLoop:
470470
server_hostname: str | None = ...,
471471
ssl_handshake_timeout: float | None = ...,
472472
ssl_shutdown_timeout: float | None = ...,
473-
) -> tuple[BaseTransport, _ProtocolT]: ...
473+
) -> tuple[Transport, _ProtocolT]: ...
474474
else:
475475
async def create_unix_connection(
476476
self,
@@ -481,15 +481,15 @@ class AbstractEventLoop:
481481
sock: socket | None = ...,
482482
server_hostname: str | None = ...,
483483
ssl_handshake_timeout: float | None = ...,
484-
) -> tuple[BaseTransport, _ProtocolT]: ...
484+
) -> tuple[Transport, _ProtocolT]: ...
485485

486486
@abstractmethod
487487
async def sock_sendfile(
488488
self, sock: socket, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool | None = ...
489489
) -> int: ...
490490
@abstractmethod
491491
async def sendfile(
492-
self, transport: BaseTransport, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool = ...
492+
self, transport: WriteTransport, file: IO[bytes], offset: int = ..., count: int | None = ..., *, fallback: bool = ...
493493
) -> int: ...
494494
@abstractmethod
495495
async def create_datagram_endpoint(
@@ -505,7 +505,7 @@ class AbstractEventLoop:
505505
reuse_port: bool | None = ...,
506506
allow_broadcast: bool | None = ...,
507507
sock: socket | None = ...,
508-
) -> tuple[BaseTransport, _ProtocolT]: ...
508+
) -> tuple[DatagramTransport, _ProtocolT]: ...
509509
# Pipes and subprocesses.
510510
@abstractmethod
511511
async def connect_read_pipe(

0 commit comments

Comments
 (0)