mirror of
https://github.com/python/cpython.git
synced 2025-09-19 07:00:59 +00:00
asyncio: Use Interface instead of ABC. Fixes issue 19726.
This commit is contained in:
parent
7c63c85f17
commit
9204af42cc
3 changed files with 11 additions and 11 deletions
|
@ -234,7 +234,7 @@ class AbstractEventLoop:
|
||||||
protocol_factory should instantiate object with Protocol interface.
|
protocol_factory should instantiate object with Protocol interface.
|
||||||
pipe is file-like object already switched to nonblocking.
|
pipe is file-like object already switched to nonblocking.
|
||||||
Return pair (transport, protocol), where transport support
|
Return pair (transport, protocol), where transport support
|
||||||
ReadTransport ABC"""
|
ReadTransport interface."""
|
||||||
# The reason to accept file-like object instead of just file descriptor
|
# The reason to accept file-like object instead of just file descriptor
|
||||||
# is: we need to own pipe and close it at transport finishing
|
# is: we need to own pipe and close it at transport finishing
|
||||||
# Can got complicated errors if pass f.fileno(),
|
# Can got complicated errors if pass f.fileno(),
|
||||||
|
@ -247,7 +247,7 @@ class AbstractEventLoop:
|
||||||
protocol_factory should instantiate object with BaseProtocol interface.
|
protocol_factory should instantiate object with BaseProtocol interface.
|
||||||
Pipe is file-like object already switched to nonblocking.
|
Pipe is file-like object already switched to nonblocking.
|
||||||
Return pair (transport, protocol), where transport support
|
Return pair (transport, protocol), where transport support
|
||||||
WriteTransport ABC"""
|
WriteTransport interface."""
|
||||||
# The reason to accept file-like object instead of just file descriptor
|
# The reason to accept file-like object instead of just file descriptor
|
||||||
# is: we need to own pipe and close it at transport finishing
|
# is: we need to own pipe and close it at transport finishing
|
||||||
# Can got complicated errors if pass f.fileno(),
|
# Can got complicated errors if pass f.fileno(),
|
||||||
|
|
|
@ -4,7 +4,7 @@ __all__ = ['Protocol', 'DatagramProtocol']
|
||||||
|
|
||||||
|
|
||||||
class BaseProtocol:
|
class BaseProtocol:
|
||||||
"""ABC for base protocol class.
|
"""Common base class for protocol interfaces.
|
||||||
|
|
||||||
Usually user implements protocols that derived from BaseProtocol
|
Usually user implements protocols that derived from BaseProtocol
|
||||||
like Protocol or ProcessProtocol.
|
like Protocol or ProcessProtocol.
|
||||||
|
@ -59,7 +59,7 @@ class BaseProtocol:
|
||||||
|
|
||||||
|
|
||||||
class Protocol(BaseProtocol):
|
class Protocol(BaseProtocol):
|
||||||
"""ABC representing a protocol.
|
"""Interface for stream protocol.
|
||||||
|
|
||||||
The user should implement this interface. They can inherit from
|
The user should implement this interface. They can inherit from
|
||||||
this class but don't need to. The implementations here do
|
this class but don't need to. The implementations here do
|
||||||
|
@ -95,7 +95,7 @@ class Protocol(BaseProtocol):
|
||||||
|
|
||||||
|
|
||||||
class DatagramProtocol(BaseProtocol):
|
class DatagramProtocol(BaseProtocol):
|
||||||
"""ABC representing a datagram protocol."""
|
"""Interface for datagram protocol."""
|
||||||
|
|
||||||
def datagram_received(self, data, addr):
|
def datagram_received(self, data, addr):
|
||||||
"""Called when some datagram is received."""
|
"""Called when some datagram is received."""
|
||||||
|
@ -108,7 +108,7 @@ class DatagramProtocol(BaseProtocol):
|
||||||
|
|
||||||
|
|
||||||
class SubprocessProtocol(BaseProtocol):
|
class SubprocessProtocol(BaseProtocol):
|
||||||
"""ABC representing a protocol for subprocess calls."""
|
"""Interface for protocol for subprocess calls."""
|
||||||
|
|
||||||
def pipe_data_received(self, fd, data):
|
def pipe_data_received(self, fd, data):
|
||||||
"""Called when the subprocess writes data into stdout/stderr pipe.
|
"""Called when the subprocess writes data into stdout/stderr pipe.
|
||||||
|
|
|
@ -4,7 +4,7 @@ __all__ = ['ReadTransport', 'WriteTransport', 'Transport']
|
||||||
|
|
||||||
|
|
||||||
class BaseTransport:
|
class BaseTransport:
|
||||||
"""Base ABC for transports."""
|
"""Base class for transports."""
|
||||||
|
|
||||||
def __init__(self, extra=None):
|
def __init__(self, extra=None):
|
||||||
if extra is None:
|
if extra is None:
|
||||||
|
@ -27,7 +27,7 @@ class BaseTransport:
|
||||||
|
|
||||||
|
|
||||||
class ReadTransport(BaseTransport):
|
class ReadTransport(BaseTransport):
|
||||||
"""ABC for read-only transports."""
|
"""Interface for read-only transports."""
|
||||||
|
|
||||||
def pause_reading(self):
|
def pause_reading(self):
|
||||||
"""Pause the receiving end.
|
"""Pause the receiving end.
|
||||||
|
@ -47,7 +47,7 @@ class ReadTransport(BaseTransport):
|
||||||
|
|
||||||
|
|
||||||
class WriteTransport(BaseTransport):
|
class WriteTransport(BaseTransport):
|
||||||
"""ABC for write-only transports."""
|
"""Interface for write-only transports."""
|
||||||
|
|
||||||
def set_write_buffer_limits(self, high=None, low=None):
|
def set_write_buffer_limits(self, high=None, low=None):
|
||||||
"""Set the high- and low-water limits for write flow control.
|
"""Set the high- and low-water limits for write flow control.
|
||||||
|
@ -115,7 +115,7 @@ class WriteTransport(BaseTransport):
|
||||||
|
|
||||||
|
|
||||||
class Transport(ReadTransport, WriteTransport):
|
class Transport(ReadTransport, WriteTransport):
|
||||||
"""ABC representing a bidirectional transport.
|
"""Interface representing a bidirectional transport.
|
||||||
|
|
||||||
There may be several implementations, but typically, the user does
|
There may be several implementations, but typically, the user does
|
||||||
not implement new transports; rather, the platform provides some
|
not implement new transports; rather, the platform provides some
|
||||||
|
@ -137,7 +137,7 @@ class Transport(ReadTransport, WriteTransport):
|
||||||
|
|
||||||
|
|
||||||
class DatagramTransport(BaseTransport):
|
class DatagramTransport(BaseTransport):
|
||||||
"""ABC for datagram (UDP) transports."""
|
"""Interface for datagram (UDP) transports."""
|
||||||
|
|
||||||
def sendto(self, data, addr=None):
|
def sendto(self, data, addr=None):
|
||||||
"""Send data to the transport.
|
"""Send data to the transport.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue