From 3fbecf89dba7db8d0fca24636b255c6a9d02eb50 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 16 Dec 2021 10:50:56 +0100 Subject: [PATCH] Enable asyncio debug in developer mode (#3348) --- supervisor/__main__.py | 1 + supervisor/store/__init__.py | 4 ++-- supervisor/store/data.py | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/supervisor/__main__.py b/supervisor/__main__.py index f8d7fbdc9..56557bd84 100644 --- a/supervisor/__main__.py +++ b/supervisor/__main__.py @@ -39,6 +39,7 @@ if __name__ == "__main__": _LOGGER.info("Initializing Supervisor setup") coresys = loop.run_until_complete(bootstrap.initialize_coresys()) + loop.set_debug(coresys.config.debug) loop.run_until_complete(coresys.core.connect()) bootstrap.supervisor_debugger(coresys) diff --git a/supervisor/store/__init__.py b/supervisor/store/__init__.py index f6d33025c..fe456f23d 100644 --- a/supervisor/store/__init__.py +++ b/supervisor/store/__init__.py @@ -47,7 +47,7 @@ class StoreManager(CoreSysAttributes): async def load(self) -> None: """Start up add-on management.""" - self.data.update() + await self.data.update() # Init Supervisor built-in repositories repositories = set(self.sys_config.addons_repositories) | BUILTIN_REPOSITORIES @@ -126,7 +126,7 @@ class StoreManager(CoreSysAttributes): self.sys_config.drop_addon_repository(url) # update data - self.data.update() + await self.data.update() self._read_addons() def _read_addons(self) -> None: diff --git a/supervisor/store/data.py b/supervisor/store/data.py index aad67b9a2..41a829fbd 100644 --- a/supervisor/store/data.py +++ b/supervisor/store/data.py @@ -1,7 +1,7 @@ """Init file for Supervisor add-on data.""" import logging from pathlib import Path -from typing import Any, Optional +from typing import Any, Awaitable, Optional import voluptuous as vol from voluptuous.humanize import humanize_error @@ -37,8 +37,11 @@ class StoreData(CoreSysAttributes): self.repositories: dict[str, Any] = {} self.addons: dict[str, Any] = {} - def update(self) -> None: + async def update(self) -> Awaitable[None]: """Read data from add-on repository.""" + return await self.sys_run_in_executor(self._update) + + def _update(self) -> None: self.repositories.clear() self.addons.clear()