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[_T_Response], Unpack[_T_VarArgs]], AbstractAsyncContextManager[AsyncStreamClient[_T_Response] | None]], request_handler: AsyncStreamRequestHandler[_T_Request, _T_Response], *args: Unpack[_T_VarArgs], logger: Logger | None = None) Callable[[ConnectedStreamClient[_T_Response]], AsyncGenerator[float | RecvParams | None, _T_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[_T_Response], Unpack[_T_VarArgs]], AbstractAsyncContextManager[AsyncStreamClient[_T_Response] | 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[_T_Request, _T_Response]) – 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[_T_Response]], AsyncGenerator[float | RecvParams | None, _T_Request]]
- easynetwork.servers.misc.build_lowlevel_datagram_server_handler(initializer: Callable[[DatagramClientContext[_T_Response, _T_Address], Unpack[_T_VarArgs]], AbstractAsyncContextManager[AsyncDatagramClient[_T_Response] | None]], request_handler: AsyncDatagramRequestHandler[_T_Request, _T_Response], *args: Unpack[_T_VarArgs]) Callable[[DatagramClientContext[_T_Response, _T_Address]], AsyncGenerator[float | RecvParams | None, _T_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[_T_Response, _T_Address], Unpack[_T_VarArgs]], AbstractAsyncContextManager[AsyncDatagramClient[_T_Response] | 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[_T_Request, _T_Response]) – the high-level interface which handles the incoming requests.
- Returns:
an asynchronous generator function.
- Return type:
Callable[[DatagramClientContext[_T_Response, _T_Address]], AsyncGenerator[float | RecvParams | None, _T_Request]]