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'#
- log_alias = 'HTTP'#
- async post_handler(response: ResponseHeader, request: RequestHeader, request_data: bytes | None) bytes | None [source]#
Sample handler.
- 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.
- 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.
- 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 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.
- 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 classmethod create_connection(markdown: str = None, **kwargs) T [source]#
Create a UDP connection.
- 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.
- 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 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