From e8fc4e0f1950ae4e68de401d417b4e10873c5848 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 21 May 2024 01:52:44 -1000 Subject: [PATCH] Small speed up to adding event bus listeners (#117849) --- homeassistant/core.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/homeassistant/core.py b/homeassistant/core.py index ca82b46bb87..6aa0204d8b4 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -1422,7 +1422,9 @@ class EventBus: def __init__(self, hass: HomeAssistant) -> None: """Initialize a new event bus.""" - self._listeners: dict[EventType[Any] | str, list[_FilterableJobType[Any]]] = {} + self._listeners: defaultdict[ + EventType[Any] | str, list[_FilterableJobType[Any]] + ] = defaultdict(list) self._match_all_listeners: list[_FilterableJobType[Any]] = [] self._listeners[MATCH_ALL] = self._match_all_listeners self._hass = hass @@ -1615,7 +1617,7 @@ class EventBus: event_type: EventType[_DataT] | str, filterable_job: _FilterableJobType[_DataT], ) -> CALLBACK_TYPE: - self._listeners.setdefault(event_type, []).append(filterable_job) + self._listeners[event_type].append(filterable_job) return functools.partial( self._async_remove_listener, event_type, filterable_job )