runtimepy.net.factories package

Contents

runtimepy.net.factories package#

Module contents#

A module aggregating commonly used connection factory classes.

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

Bases: TcpConnection

A class implementing a basic HTTP interface.

expecting_response: bool#
async get_handler(response: ResponseHeader, request: RequestHeader, request_data: bytes | None) bytes | None[source]#

Sample handler.

classmethod get_log_prefix(is_ssl: bool = False) str[source]#

Get a logging prefix for this instance.

handlers: dict[HTTPMethod, Callable[[ResponseHeader, RequestHeader, bytes | None], Awaitable[bytes | None]]] = {}#
identity = 'runtimepy/5.11.5'#
init() None[source]#

Initialize this instance.

log_alias = 'HTTP'#
async post_handler(response: ResponseHeader, request: RequestHeader, request_data: bytes | None) bytes | None[source]#

Sample handler.

async process_binary(data: bytes) bool[source]#

Process a binary frame.

async request(request: RequestHeader, data: bytes | None = None) Tuple[ResponseHeader, bytes | None][source]#

Make an HTTP request.

async request_json(request: RequestHeader, data: bytes | None = None) Any[source]#

Perform a request and convert the response to a data structure by decoding it as JSON.

class runtimepy.net.factories.RuntimepyWebsocketConnection(protocol: ClientConnection | ServerConnection, **kwargs)[source]#

Bases: WebsocketJsonMessageConnection

A class implementing a package-specific WebSocket connection.

async async_init() bool[source]#

A runtime initialization routine (executes during ‘process’).

disable_extra() None[source]#

Additional tasks to perform when disabling.

init() None[source]#

Initialize this instance.

poll_connection_metrics: bool#
poll_governor: RateLimiter#
send_interfaces: dict[str, Callable[[dict[str, Any]], None]]#
tab_sender(name: str) Callable[[dict[str, Any]], None][source]#

Get a tab message-sending interface.

tabs: dict[str, TabState]#
ui_time: float#
class runtimepy.net.factories.RuntimepyWebsocketJson[source]#

Bases: WebsocketConnectionFactory[RuntimepyWebsocketConnection]

WebSocket JSON-connection factory.

kind#

alias of RuntimepyWebsocketConnection

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

Bases: Connection, TransportMixin

A TCP connection interface.

async classmethod app(stop_sig: Event, callback: Callable[[T], None] = None, serving_callback: Callable[[Any], None] = None, manager: ConnectionManager = None, **kwargs) None[source]#

Run an application that serves new connections.

async close() None[source]#

Close this connection.

async classmethod create_connection(backoff: ExponentialBackoff = None, markdown: str = None, **kwargs) T[source]#

Create a TCP connection.

classmethod create_pair(peer: type[V] = None, serve_kwargs: dict[str, Any] = None, connect_kwargs: dict[str, Any] = None, host: str = '127.0.0.1') AsyncIterator[tuple[V, T]][source]#

Create a connection pair.

classmethod get_log_prefix(is_ssl: bool = False) str[source]#

Get a logging prefix for this instance.

property is_ssl: bool#

Determine if this connection uses SSL.

log_alias = 'TCP'#
log_prefix = ''#
async restart() bool[source]#

Reset necessary underlying state for this connection to ‘process’ again.

send_binary(data: bytes | bytearray | memoryview) None[source]#

Enqueue a binary message tos end.

send_text(data: str) None[source]#

Enqueue a text message to send.

classmethod serve(callback: Callable[[T], None] = None, **kwargs) AsyncIterator[Any][source]#

Serve incoming connections.

uses_binary_tx_queue = False#
uses_text_tx_queue = False#
class runtimepy.net.factories.TcpConnectionFactory[source]#

Bases: ConnectionFactory, Generic[T]

A class implementing a basic TCP connection factory.

async client(name: str, *args, **kwargs) Connection[source]#

Create a client connection.

kind: type[T]#
async server_task(stop_sig: Event, manager: ConnectionManager, started_sem: Semaphore, *args, **kwargs) Awaitable[None][source]#

Create a task that will run a connection server.

class runtimepy.net.factories.TcpEcho[source]#

Bases: TcpConnectionFactory[EchoTcpConnection]

TCP echo-connection factory.

kind#

alias of EchoTcpConnection

class runtimepy.net.factories.TcpMessage[source]#

Bases: TcpConnectionFactory[TcpPrefixedMessageConnection]

TCP message-connection factory.

kind#

alias of TcpPrefixedMessageConnection

class runtimepy.net.factories.TcpMessageEcho[source]#

Bases: TcpConnectionFactory[EchoTcpMessageConnection]

TCP message-connection factory.

kind#

alias of EchoTcpMessageConnection

class runtimepy.net.factories.TcpNull[source]#

Bases: TcpConnectionFactory[NullTcpConnection]

TCP null-connection factory.

kind#

alias of NullTcpConnection

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

Bases: Connection, TransportMixin

A UDP connection interface.

async close() None[source]#

Close this connection.

async classmethod create_connection(markdown: str = None, **kwargs) T[source]#

Create a UDP connection.

async classmethod create_pair() tuple[T, T][source]#

Create a connection pair.

latest_rx_address: tuple[str, int] | None#
log_alias = 'UDP'#
abstractmethod async process_datagram(data: bytes, addr: tuple[str, int]) bool[source]#

Process a datagram.

async restart() bool[source]#

Reset necessary underlying state for this connection to ‘process’ again.

send_binary(data: bytes | bytearray | memoryview) None[source]#

Enqueue a binary message to send.

send_text(data: str) None[source]#

Enqueue a text message to send.

sendto(data: bytes, addr: IPv4Host | IPv6Host | tuple[str, int] | tuple[str, int, int, int] = None) None[source]#

Send to a specific address.

set_remote_address(addr: IPv4Host | IPv6Host) None[source]#

Set a new remote address. Note that this doesn’t interact with or attempt to ‘connect’ the underlying socket. That should be done at creation time.

should_connect: bool = True#
uses_binary_tx_queue = False#
uses_text_tx_queue = False#
class runtimepy.net.factories.UdpConnectionFactory[source]#

Bases: ConnectionFactory, Generic[T]

A class implementing a basic UDP connection factory.

async client(name: str, *args, **kwargs) Connection[source]#

Create a client connection.

kind: type[T]#
class runtimepy.net.factories.UdpEcho[source]#

Bases: UdpConnectionFactory[EchoUdpConnection]

UDP echo-connection factory.

kind#

alias of EchoUdpConnection

class runtimepy.net.factories.UdpMessage[source]#

Bases: UdpConnectionFactory[UdpPrefixedMessageConnection]

UDP message-connection factory.

kind#

alias of UdpPrefixedMessageConnection

class runtimepy.net.factories.UdpMessageEcho[source]#

Bases: UdpConnectionFactory[EchoUdpMessageConnection]

UDP echo-connection factory.

kind#

alias of EchoUdpMessageConnection

class runtimepy.net.factories.UdpNull[source]#

Bases: UdpConnectionFactory[NullUdpConnection]

UDP null-connection factory.

kind#

alias of NullUdpConnection

class runtimepy.net.factories.WebsocketConnection(protocol: ClientConnection | ServerConnection, **kwargs)[source]#

Bases: Connection

A simple websocket connection interface.

async classmethod app(stop_sig: Event, init: Callable[[T], Awaitable[bool]] = None, manager: ConnectionManager = None, serving_callback: Callable[[Server], None] = None, **kwargs) None[source]#

Run a WebSocket-server application.

classmethod client(uri: str, markdown: str = None, **kwargs) AsyncIterator[T][source]#

A wrapper for connecting a client.

async close() None[source]#

Close this connection.

async classmethod create_connection(uri: str, markdown: str = None, **kwargs) T[source]#

Connect a client to an endpoint.

classmethod create_pair(serve_kwargs: dict[str, Any] = None) AsyncIterator[tuple[T, T]][source]#

Obtain a connected pair of WebsocketConnection objects.

classmethod serve(init: Callable[[T], Awaitable[bool]] = None, stop_sig: Event = None, manager: ConnectionManager = None, **kwargs) AsyncIterator[Server][source]#

Serve a WebSocket server.

classmethod server_handler(init: Callable[[T], Awaitable[bool]] = None, stop_sig: Event = None, manager: ConnectionManager = None) Callable[[ServerConnection], Awaitable[None]][source]#

A wrapper for passing in a websocket handler and initializing a connection.

class runtimepy.net.factories.WebsocketConnectionFactory[source]#

Bases: ConnectionFactory, Generic[T]

A class implementing a basic WebSocket connection factory.

async client(name: str, *args, **kwargs) Connection[source]#

Create a client connection.

kind: type[T]#
async server_task(stop_sig: Event, manager: ConnectionManager, started_sem: Semaphore, *args, **kwargs) Awaitable[None][source]#

Create a task that will run a connection server.

class runtimepy.net.factories.WebsocketEcho[source]#

Bases: WebsocketConnectionFactory[EchoWebsocketConnection]

WebSocket echo-connection factory.

kind#

alias of EchoWebsocketConnection

class runtimepy.net.factories.WebsocketNull[source]#

Bases: WebsocketConnectionFactory[NullWebsocketConnection]

WebSocket null-connection factory.

kind#

alias of NullWebsocketConnection