REDAC Low-Level Abstractions
Transport Layer
- class pyanabrid.base.transport.BaseTransport(reader: StreamReader, writer: StreamWriter, name: str = None)
Abstract base class for transports.
Transports are based on
asyncio.StreamReader
andasyncio.StreamWriter
objects.- close()
Close the underlying
asyncio.StreamWriter
.
- async receive_line(timeout=1) bytes
Receive one line of data from the transport.
- async send_line(data: bytes) None
Send one line of data over the transport. Newline character ‘ ‘ is appended automatically.
- class pyanabrid.base.transport.PassthroughTransport(reader: StreamReader, writer: StreamWriter, name: str = None)
A utility passthrough transport for testing purposes.
Use it to pass a reader and a writer from your code into anything that uses transports.
- async classmethod create(reader: StreamReader, writer: StreamWriter, **kwargs) PassthroughTransport
Create a new
PassthroughTransport
instance.- Parameters:
reader – A
asyncio.StreamReader
instance.writer – A
asyncio.StreamWriter
instance.kwargs – Keyword arguments are passed on to
BaseTransport
.
- Returns:
A
PassthroughTransport
instance.
- class pyanabrid.base.transport.SerialTransport(reader: StreamReader, writer: StreamWriter, name: str = None)
A transport abstraction for serial connections.
- async classmethod create(device, baudrate, /, **kwargs)
Create a new
SerialTransport
instance.- Parameters:
device – The serial device’s path.
baudrate – The baudrate to use.
kwargs – Keyword arguments are passed on to
BaseTransport
.
- Returns:
A
SerialTransport
instance.
- class pyanabrid.base.transport.TCPTransport(reader: StreamReader, writer: StreamWriter, name: str = None)
A TCP/IP transport implementation for network communication.
- async classmethod create(host, port, /, **kwargs)
Create a new
TCPTransport
instance for communicating over network.- Parameters:
host – Target hostname or IP address.
port – Target network port.
kwargs – Keyword arguments are passed on to
BaseTransport
.
- Returns:
A
TCPTransport
instance.
- class pyanabrid.base.transport.UnixSocketTransport(reader: StreamReader, writer: StreamWriter, name: str = None)
Transport based on unix sockets, mostly for testing purposes.
- async classmethod create(path: Optional[Union[str, PathLike]], **kwargs) UnixSocketTransport
Create a new
UnixSocketTransport
.- Parameters:
path – Path which should be used for the socket. A temporary file is created if None.
kwargs – Keyword arguments are passed on to
BaseTransport
.
- Returns:
A
UnixSocketTransport
instance