From 54e6459a41a197672b14127b4e92a4da74869403 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 16 Jun 2024 13:35:43 -0400 Subject: [PATCH] Speed up getting conversation agent languages (#119554) Speed up getting conversation languages --- homeassistant/components/conversation/__init__.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/conversation/__init__.py b/homeassistant/components/conversation/__init__.py index 2e6c813a551..6441dcab4ca 100644 --- a/homeassistant/components/conversation/__init__.py +++ b/homeassistant/components/conversation/__init__.py @@ -127,7 +127,6 @@ async def async_get_conversation_languages( """ agent_manager = get_agent_manager(hass) entity_component: EntityComponent[ConversationEntity] = hass.data[DOMAIN] - languages: set[str] = set() agents: list[ConversationEntity | AbstractConversationAgent] if agent_id: @@ -136,6 +135,10 @@ async def async_get_conversation_languages( if agent is None: raise ValueError(f"Agent {agent_id} not found") + # Shortcut + if agent.supported_languages == MATCH_ALL: + return MATCH_ALL + agents = [agent] else: @@ -143,11 +146,16 @@ async def async_get_conversation_languages( for info in agent_manager.async_get_agent_info(): agent = agent_manager.async_get_agent(info.id) assert agent is not None + + # Shortcut + if agent.supported_languages == MATCH_ALL: + return MATCH_ALL + agents.append(agent) + languages: set[str] = set() + for agent in agents: - if agent.supported_languages == MATCH_ALL: - return MATCH_ALL for language_tag in agent.supported_languages: languages.add(language_tag)