runtimepy.net.stream package#

Subpackages#

Submodules#

runtimepy.net.stream.base module#

A module implementing a base, stream-oriented connection interface.

class runtimepy.net.stream.base.PrefixedMessageConnection(logger: Logger | LoggerAdapter[Any], env: ChannelEnvironment = None, add_metrics: bool = True, markdown: str = None)[source]#

Bases: Connection

A connection for handling inter-frame message size prefixes for some stream-oriented protocols.

init() None[source]#

Initialize this instance.

async process_binary(data: bytes, addr: tuple[str, int] = None) bool[source]#

Process an incoming message.

async process_single(stream: BinaryIO, addr: tuple[str, int] = None) bool[source]#

Process a single message.

processor: MessageProcessor#
send_message(data: bytes | bytearray | memoryview, addr: tuple[str, int] = None) None[source]#

Handle inter-message prefixes for outgoing messages.

send_message_str(data: str, addr: tuple[str, int] = None) None[source]#

Convert a message to bytes before sending.

runtimepy.net.stream.string module#

A module implementing a string-message stream interface.

class runtimepy.net.stream.string.StringMessageConnection(logger: Logger | LoggerAdapter[Any], env: ChannelEnvironment = None, add_metrics: bool = True, markdown: str = None)[source]#

Bases: PrefixedMessageConnection

A simple string-message sending and processing connection.

async process_message(data: str, addr: Tuple[str, int] = None) bool[source]#

Process a string message.

async process_single(stream: BinaryIO, addr: Tuple[str, int] = None) bool[source]#

Process a single message.

Module contents#

A module aggregating stream-oriented connection interfaces.

class runtimepy.net.stream.EchoMessageConnection(logger: Logger | LoggerAdapter[Any], env: ChannelEnvironment = None, add_metrics: bool = True, markdown: str = None)[source]#

Bases: PrefixedMessageConnection

A connection that just echoes what it was sent.

async process_single(stream: BinaryIO, addr: Tuple[str, int] = None) bool[source]#

Process a single message.

class runtimepy.net.stream.EchoTcpMessageConnection(transport: Transport, protocol: QueueProtocol, **kwargs)[source]#

Bases: TcpPrefixedMessageConnection, EchoMessageConnection

A connection that just echoes what it was sent.

class runtimepy.net.stream.EchoUdpMessageConnection(transport: DatagramTransport, protocol: UdpQueueProtocol, **kwargs)[source]#

Bases: UdpPrefixedMessageConnection, EchoMessageConnection

A connection that just echoes what it was sent.

class runtimepy.net.stream.PrefixedMessageConnection(logger: Logger | LoggerAdapter[Any], env: ChannelEnvironment = None, add_metrics: bool = True, markdown: str = None)[source]#

Bases: Connection

A connection for handling inter-frame message size prefixes for some stream-oriented protocols.

env: ChannelEnvironment#
init() None[source]#

Initialize this instance.

logger: LoggerType#
markdown: str#
async process_binary(data: bytes, addr: tuple[str, int] = None) bool[source]#

Process an incoming message.

async process_single(stream: BinaryIO, addr: tuple[str, int] = None) bool[source]#

Process a single message.

processor: MessageProcessor#
send_message(data: bytes | bytearray | memoryview, addr: tuple[str, int] = None) None[source]#

Handle inter-message prefixes for outgoing messages.

send_message_str(data: str, addr: tuple[str, int] = None) None[source]#

Convert a message to bytes before sending.

class runtimepy.net.stream.StringMessageConnection(logger: Logger | LoggerAdapter[Any], env: ChannelEnvironment = None, add_metrics: bool = True, markdown: str = None)[source]#

Bases: PrefixedMessageConnection

A simple string-message sending and processing connection.

async process_message(data: str, addr: Tuple[str, int] = None) bool[source]#

Process a string message.

async process_single(stream: BinaryIO, addr: Tuple[str, int] = None) bool[source]#

Process a single message.

class runtimepy.net.stream.TcpPrefixedMessageConnection(transport: Transport, protocol: QueueProtocol, **kwargs)[source]#

Bases: PrefixedMessageConnection, TcpConnection

A TCP implementation for size-prefixed messages.

class runtimepy.net.stream.TcpStringMessageConnection(transport: Transport, protocol: QueueProtocol, **kwargs)[source]#

Bases: StringMessageConnection, TcpConnection

A simple string-message sending and processing connection using TCP.

class runtimepy.net.stream.UdpPrefixedMessageConnection(transport: DatagramTransport, protocol: UdpQueueProtocol, **kwargs)[source]#

Bases: PrefixedMessageConnection, UdpConnection

A UDP implementation for size-prefixed messages.

async process_datagram(data: bytes, addr: Tuple[str, int]) bool[source]#

Process a datagram.

class runtimepy.net.stream.UdpStringMessageConnection(transport: DatagramTransport, protocol: UdpQueueProtocol, **kwargs)[source]#

Bases: StringMessageConnection, UdpPrefixedMessageConnection

A simple string-message sending and processing connection using UDP.