Server implementation tools — Miscellaneous
Server implementation tools module.
Bridge between low-level and high-level APIs
- easynetwork.servers.misc.build_lowlevel_stream_server_handler(initializer: Callable[[ConnectedStreamClient, Unpack[VarArgs]], AbstractAsyncContextManager[AsyncStreamClient | None]], request_handler: AsyncStreamRequestHandler, *args: Unpack[VarArgs], logger: Logger | None = None) Callable[[ConnectedStreamClient], AsyncGenerator[float | RecvParams | None, Request]]
Creates an asynchronous generator function, usable by
AsyncStreamServer.serve(), from anAsyncStreamRequestHandler.Changed in version 1.1: Added variadic arguments for initializer.
- Parameters:
initializer (Callable[[ConnectedStreamClient, Unpack[VarArgs]], AbstractAsyncContextManager[AsyncStreamClient | None]]) – a callback returning an asynchronous context manager to create the final client interface and set up the request handler generator. The yielded value can be
Noneif the initializer failed silently.request_handler (AsyncStreamRequestHandler) – the high-level interface which handles the incoming requests.
logger (Logger | None) – if given, will be used to log some warnings.
- Returns:
an asynchronous generator function.
- Return type:
Callable[[ConnectedStreamClient], AsyncGenerator[float | RecvParams | None, Request]]
- easynetwork.servers.misc.build_lowlevel_datagram_server_handler(initializer: Callable[[DatagramClientContext, Unpack[VarArgs]], AbstractAsyncContextManager[AsyncDatagramClient | None]], request_handler: AsyncDatagramRequestHandler, *args: Unpack[VarArgs]) Callable[[DatagramClientContext], AsyncGenerator[float | RecvParams | None, Request]]
Creates an asynchronous generator function, usable by
AsyncDatagramServer.serve(), from anAsyncDatagramRequestHandler.Changed in version 1.1: Added variadic arguments for initializer.
- Parameters:
initializer (Callable[[DatagramClientContext, Unpack[VarArgs]], AbstractAsyncContextManager[AsyncDatagramClient | None]]) – a callback returning an asynchronous context manager to create the final client interface and set up the request handler generator. The yielded value can be
Noneif the initializer failed silently.request_handler (AsyncDatagramRequestHandler) – the high-level interface which handles the incoming requests.
- Returns:
an asynchronous generator function.
- Return type:
Callable[[DatagramClientContext], AsyncGenerator[float | RecvParams | None, Request]]