runtimepy.net.factories package#
Module contents#
A module aggregating commonly used connection factory classes.
- class runtimepy.net.factories.HttpConnection(transport: Transport, protocol: QueueProtocol)[source]#
Bases:
TcpConnectionA 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.
- handlers: dict[HTTPMethod, Callable[[ResponseHeader, RequestHeader, bytes | None], Awaitable[bytes | None]]] = {}#
- identity = 'runtimepy/4.4.0'#
- log_alias = 'HTTP'#
- log_prefix = 'http://'#
- 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: WebSocketClientProtocol | WebSocketServerProtocol)[source]#
Bases:
WebsocketJsonMessageConnectionA class implementing a package-specific WebSocket connection.
- first_client: bool#
- first_message: bool#
- 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.
- 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)[source]#
Bases:
Connection,TransportMixinA 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 classmethod create_connection(backoff: ExponentialBackoff = None, **kwargs) T[source]#
Create a TCP connection.
- log_alias = 'TCP'#
- log_prefix = ''#
- async restart() bool[source]#
Reset necessary underlying state for this connection to ‘process’ again.
- 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)[source]#
Bases:
Connection,TransportMixinA UDP connection interface.
- async classmethod create_connection(connect: bool = True, **kwargs) T[source]#
Create a UDP connection.
- latest_rx_address: tuple[str, int] | None#
- abstract 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.
- sendto(data: bytes, addr: IPv4Host | IPv6Host | tuple[str, 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.
- 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: WebSocketClientProtocol | WebSocketServerProtocol)[source]#
Bases:
ConnectionA simple websocket connection interface.
- async classmethod app(stop_sig: Event, init: Callable[[T], Awaitable[bool]] = None, manager: ConnectionManager = None, serving_callback: Callable[[WebSocketServer], None] = None, **kwargs) None[source]#
Run a WebSocket-server application.
- classmethod create_pair() 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[WebSocketServer][source]#
Serve a WebSocket server.
- classmethod server_handler(init: Callable[[T], Awaitable[bool]] = None, stop_sig: Event = None, manager: ConnectionManager = None) Callable[[WebSocketServerProtocol], 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