From 39962367297561594ff38d5179a7201f95e5264f Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 1 Mar 2021 17:59:40 +0200 Subject: [PATCH] Report detailed server error to PIO Home frontend --- platformio/commands/home/rpc/handlers/ide.py | 4 ++-- platformio/commands/home/rpc/server.py | 6 ++++-- setup.py | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/platformio/commands/home/rpc/handlers/ide.py b/platformio/commands/home/rpc/handlers/ide.py index 3bf8e00f..bacf8391 100644 --- a/platformio/commands/home/rpc/handlers/ide.py +++ b/platformio/commands/home/rpc/handlers/ide.py @@ -33,11 +33,11 @@ class IDERPC: {"id": time.time(), "method": command, "params": params} ) - def listen_commands(self, sid=0): + async def listen_commands(self, sid=0): if sid not in self._queue: self._queue[sid] = [] self._queue[sid].append(get_running_loop().create_future()) - return self._queue[sid][-1] + return await self._queue[sid][-1] def open_project(self, sid, project_dir): return self.send_command(sid, "open_project", project_dir) diff --git a/platformio/commands/home/rpc/server.py b/platformio/commands/home/rpc/server.py index f68f39f8..6aef10e3 100644 --- a/platformio/commands/home/rpc/server.py +++ b/platformio/commands/home/rpc/server.py @@ -28,7 +28,9 @@ class JSONRPCServerFactoryBase: def __init__(self, shutdown_timeout=0): self.shutdown_timeout = shutdown_timeout - self.manager = AsyncJSONRPCResponseManager(Dispatcher()) + self.manager = AsyncJSONRPCResponseManager( + Dispatcher(), is_server_error_verbose=True + ) def __call__(self, *args, **kwargs): raise NotImplementedError @@ -91,5 +93,5 @@ class WebSocketJSONRPCServer(WebSocketEndpoint): # pylint: disable=no-member response = await self.factory.manager.get_response_for_payload(data) if response.error: - click.secho("Error: %s" % response.error.message, fg="red", err=True) + click.secho("Error: %s" % response.error.data, fg="red", err=True) await websocket.send_text(self.factory.manager.serialize(response.body)) diff --git a/setup.py b/setup.py index 7abea9e9..2434bcc8 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ if not PY2: home_requirements = [ "aiofiles==0.6.*", - "ajsonrpc==1.0.*", + "ajsonrpc==1.1.*", "starlette==0.14.*", "uvicorn==0.13.*", "wsproto==1.0.*",