From 5ef2624168e68569d05a8da0334c2ff4b85fecef Mon Sep 17 00:00:00 2001 From: TermeHansen Date: Fri, 9 Aug 2024 20:38:51 +0200 Subject: [PATCH] suggested fix for blocking listdir function and HA 2025.6 deprecation warning --- custom_components/energidataservice/__init__.py | 4 +--- custom_components/energidataservice/connectors/__init__.py | 5 ++++- custom_components/energidataservice/forecasts/__init__.py | 5 ++++- custom_components/energidataservice/tariffs/__init__.py | 5 ++++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/custom_components/energidataservice/__init__.py b/custom_components/energidataservice/__init__.py index 90975ab..9bfbaab 100644 --- a/custom_components/energidataservice/__init__.py +++ b/custom_components/energidataservice/__init__.py @@ -53,9 +53,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: _LOGGER.debug("Entry options: %s", entry.options) result = await _setup(hass, entry) - hass.async_create_task( - hass.config_entries.async_forward_entry_setup(entry, "sensor") - ) + await hass.config_entries.async_forward_entry_setups(entry, ["sensor"]) return result diff --git a/custom_components/energidataservice/connectors/__init__.py b/custom_components/energidataservice/connectors/__init__.py index e9ebb3a..a3d02be 100644 --- a/custom_components/energidataservice/connectors/__init__.py +++ b/custom_components/energidataservice/connectors/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations import importlib +from asyncio import get_running_loop from collections import namedtuple from logging import getLogger from os import listdir @@ -26,7 +27,9 @@ def __init__(self, hass): async def load_connectors(self) -> None: """Load available connectors.""" - for module in sorted(listdir(f"{dirname(__file__)}")): + loop = get_running_loop() + modules = await loop.run_in_executor(None, listdir, f"{dirname(__file__)}") + for module in sorted(modules): mod_path = f"{dirname(__file__)}/{module}" if isdir(mod_path) and not module.endswith("__pycache__"): Connector = namedtuple("Connector", "module namespace regions") diff --git a/custom_components/energidataservice/forecasts/__init__.py b/custom_components/energidataservice/forecasts/__init__.py index 584243d..3d5d789 100644 --- a/custom_components/energidataservice/forecasts/__init__.py +++ b/custom_components/energidataservice/forecasts/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations import importlib +from asyncio import get_running_loop from collections import namedtuple from logging import getLogger from os import listdir @@ -26,7 +27,9 @@ def __init__(self, hass): async def load_modules(self) -> None: """Load available modules.""" - for module in sorted(listdir(f"{dirname(__file__)}")): + loop = get_running_loop() + modules = await loop.run_in_executor(None, listdir, f"{dirname(__file__)}") + for module in sorted(modules): mod_path = f"{dirname(__file__)}/{module}" if ( isdir(mod_path) diff --git a/custom_components/energidataservice/tariffs/__init__.py b/custom_components/energidataservice/tariffs/__init__.py index 42d4de3..1f9d29c 100644 --- a/custom_components/energidataservice/tariffs/__init__.py +++ b/custom_components/energidataservice/tariffs/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations import importlib +from asyncio import get_running_loop from collections import namedtuple from logging import getLogger from os import listdir @@ -24,7 +25,9 @@ def __init__(self, hass): async def load_modules(self) -> None: """Load available modules.""" - for module in sorted(listdir(f"{dirname(__file__)}")): + loop = get_running_loop() + modules = await loop.run_in_executor(None, listdir, f"{dirname(__file__)}") + for module in sorted(modules): mod_path = f"{dirname(__file__)}/{module}" if ( isdir(mod_path)