From 3f5dec82ed9bb78176b6df4cc2a7237afead8911 Mon Sep 17 00:00:00 2001 From: Esmeralda Gallardo Date: Wed, 19 Oct 2022 15:38:35 -0300 Subject: [PATCH] Replaced try/except block in recv_task() by match msg, and added new changes to description comment --- piker/data/_web_bs.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/piker/data/_web_bs.py b/piker/data/_web_bs.py index a1cf44d7..7a6bd5df 100644 --- a/piker/data/_web_bs.py +++ b/piker/data/_web_bs.py @@ -221,28 +221,33 @@ async def open_jsonrpc_session( ''' receives every ws message and stores it in its corresponding result field, then sets the event to wakeup original sender tasks. + also, recieves responses to requests originated from the server side. ''' async for msg in ws: - try: - msg = response_type(**msg) + match msg: + case { + 'result': _ + }: + msg = response_type(**msg) - if msg.id not in rpc_results: - log.warning(f'Wasn\'t expecting ws msg: {json.dumps(msg, indent=4)}') + if msg.id not in rpc_results: + log.warning(f'Wasn\'t expecting ws msg: {json.dumps(msg, indent=4)}') - res = rpc_results.setdefault( - msg.id, - {'result': None, 'event': trio.Event()} - ) + res = rpc_results.setdefault( + msg.id, + {'result': None, 'event': trio.Event()} + ) - res['result'] = msg - res['event'].set() + res['result'] = msg + res['event'].set() - except TypeError: - if request_type == None: - raise - await request_hook(request_type(**msg)) + case { + 'method': _, + 'params': _ + }: - + if request_hook: + await request_hook(request_type(**msg)) n.start_soon(recv_task)