From 9f8fbb747eac1f65b9eb88c64771210b6e4d964a Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 28 Feb 2024 15:40:16 -1000 Subject: [PATCH] Pre-import api, config, and lovelace in bootstrap to avoid loading them at runtime (#111752) --- homeassistant/bootstrap.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 0c51c6d2e08..1a26f8e25c7 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -21,7 +21,18 @@ import voluptuous as vol import yarl from . import config as conf_util, config_entries, core, loader, requirements -from .components import http + +# Pre-import config and lovelace which have no requirements here to avoid +# loading them at run time and blocking the event loop. We do this ahead +# of time so that we do not have to flag frontends deps with `import_executor` +# as it would create a thundering heard of executor jobs trying to import +# frontend deps at the same time. +from .components import ( + api as api_pre_import, # noqa: F401 + config as config_pre_import, # noqa: F401 + http, + lovelace as lovelace_pre_import, # noqa: F401 +) from .const import ( FORMAT_DATETIME, KEY_DATA_LOGGING as DATA_LOGGING,