asyncio.events: various fixes (#3931)

- connect_accepted_socket isn't a member of AbstractEventLoop, only
BaseEventLoop
- fix types of arguments with defaults. some of these functions could
have their signatures improved with overloads to reduce false negatives
- correctly mark a positional-only argument
- remove abstractmethod from methods that don't have abstractmethod and
go unimplemented in practice
This commit is contained in:
Shantanu
2020-04-20 17:56:24 -07:00
committed by GitHub
parent 626a0f3f73
commit ec57251010
8 changed files with 8 additions and 93 deletions

View File

@@ -192,18 +192,13 @@ class AbstractEventLoop(metaclass=ABCMeta):
family: int = ..., flags: int = ..., sock: socket = ..., backlog: int = ...,
ssl: _SSLContext = ..., reuse_address: Optional[bool] = ..., reuse_port: Optional[bool] = ...,
ssl_handshake_timeout: Optional[float] = ..., start_serving: bool = ...) -> AbstractServer: ...
@abstractmethod
async def create_unix_connection(self, protocol_factory: _ProtocolFactory, path: str, *, ssl: _SSLContext = ...,
sock: Optional[socket] = ..., server_hostname: str = ...,
async def create_unix_connection(self, protocol_factory: _ProtocolFactory, path: Optional[str] = ..., *, ssl: _SSLContext = ...,
sock: Optional[socket] = ..., server_hostname: Optional[str] = ...,
ssl_handshake_timeout: Optional[float] = ...) -> _TransProtPair: ...
@abstractmethod
async def create_unix_server(self, protocol_factory: _ProtocolFactory, path: str, *, sock: Optional[socket] = ...,
async def create_unix_server(self, protocol_factory: _ProtocolFactory, path: Optional[str] = ..., *, sock: Optional[socket] = ...,
backlog: int = ..., ssl: _SSLContext = ..., ssl_handshake_timeout: Optional[float] = ...,
start_serving: bool = ...) -> AbstractServer: ...
@abstractmethod
async def connect_accepted_socket(self, protocol_factory: _ProtocolFactory, sock: socket, *, ssl: _SSLContext = ...,
ssl_handshake_timeout: Optional[float] = ...) -> _TransProtPair: ...
@abstractmethod
async def sendfile(self, transport: BaseTransport, file: IO[bytes], offset: int = ..., count: Optional[int] = ..., *,
fallback: bool = ...) -> int: ...
@abstractmethod
@@ -225,15 +220,11 @@ class AbstractEventLoop(metaclass=ABCMeta):
sock: socket, backlog: int = ..., ssl: _SSLContext = ...,
reuse_address: Optional[bool] = ...,
reuse_port: Optional[bool] = ...) -> AbstractServer: ...
@abstractmethod
async def create_unix_connection(self, protocol_factory: _ProtocolFactory, path: str, *,
ssl: _SSLContext = ..., sock: Optional[socket] = ...,
server_hostname: str = ...) -> _TransProtPair: ...
@abstractmethod
server_hostname: Optional[str] = ...) -> _TransProtPair: ...
async def create_unix_server(self, protocol_factory: _ProtocolFactory, path: str, *,
sock: Optional[socket] = ..., backlog: int = ..., ssl: _SSLContext = ...) -> AbstractServer: ...
@abstractmethod
async def connect_accepted_socket(self, protocol_factory: _ProtocolFactory, sock: socket, *, ssl: _SSLContext = ...) -> _TransProtPair: ...
@abstractmethod
async def create_datagram_endpoint(self, protocol_factory: _ProtocolFactory,
local_addr: Optional[Tuple[str, int]] = ..., remote_addr: Optional[Tuple[str, int]] = ..., *,
@@ -332,7 +323,7 @@ def new_event_loop() -> AbstractEventLoop: ...
def get_child_watcher() -> AbstractChildWatcher: ...
def set_child_watcher(watcher: AbstractChildWatcher) -> None: ...
def _set_running_loop(loop: Optional[AbstractEventLoop]) -> None: ...
def _set_running_loop(__loop: Optional[AbstractEventLoop]) -> None: ...
def _get_running_loop() -> AbstractEventLoop: ...
if sys.version_info >= (3, 7):

View File

@@ -46,35 +46,4 @@ class _ProactorSocketTransport(_ProactorReadPipeTransport, _ProactorBaseWritePip
def write_eof(self) -> None: ...
class BaseProactorEventLoop(base_events.BaseEventLoop):
def __init__(self, proactor: Any) -> None: ...
# The methods below don't actually exist directly, ProactorEventLoops do not implement them. However, they are
# needed to satisfy mypy
if sys.version_info >= (3, 7):
async def create_unix_connection(
self,
protocol_factory: events._ProtocolFactory,
path: _Path,
*,
ssl: events._SSLContext = ...,
sock: Optional[socket] = ...,
server_hostname: str = ...,
ssl_handshake_timeout: Optional[float] = ...,
) -> events._TransProtPair: ...
async def create_unix_server(
self,
protocol_factory: events._ProtocolFactory,
path: _Path,
*,
sock: Optional[socket] = ...,
backlog: int = ...,
ssl: events._SSLContext = ...,
ssl_handshake_timeout: Optional[float] = ...,
start_serving: bool = ...,
) -> events.AbstractServer: ...
else:
async def create_unix_connection(self, protocol_factory: events._ProtocolFactory, path: str, *,
ssl: events._SSLContext = ..., sock: Optional[socket] = ...,
server_hostname: str = ...) -> events._TransProtPair: ...
async def create_unix_server(self, protocol_factory: events._ProtocolFactory, path: str, *,
sock: Optional[socket] = ..., backlog: int = ..., ssl: events._SSLContext = ...) -> events.AbstractServer: ...

View File

@@ -1,7 +1,7 @@
import selectors
import sys
from socket import socket
from typing import Optional, Union
from typing import Any, Optional, Union
from . import base_events, events
@@ -12,33 +12,4 @@ else:
_Path = str
class BaseSelectorEventLoop(base_events.BaseEventLoop):
def __init__(self, selector: Optional[selectors.BaseSelector] = ...) -> None: ...
if sys.version_info >= (3, 7):
async def create_unix_connection(
self,
protocol_factory: events._ProtocolFactory,
path: _Path,
*,
ssl: events._SSLContext = ...,
sock: Optional[socket] = ...,
server_hostname: str = ...,
ssl_handshake_timeout: Optional[float] = ...,
) -> events._TransProtPair: ...
async def create_unix_server(
self,
protocol_factory: events._ProtocolFactory,
path: _Path,
*,
sock: Optional[socket] = ...,
backlog: int = ...,
ssl: events._SSLContext = ...,
ssl_handshake_timeout: Optional[float] = ...,
start_serving: bool = ...,
) -> events.AbstractServer: ...
else:
async def create_unix_connection(self, protocol_factory: events._ProtocolFactory, path: str, *,
ssl: events._SSLContext = ..., sock: Optional[socket] = ...,
server_hostname: str = ...) -> events._TransProtPair: ...
async def create_unix_server(self, protocol_factory: events._ProtocolFactory, path: str, *,
sock: Optional[socket] = ..., backlog: int = ..., ssl: events._SSLContext = ...) -> events.AbstractServer: ...