Speed up getting conversation agent languages (#119554)

Speed up getting conversation languages
This commit is contained in:
Paulus Schoutsen 2024-06-16 13:35:43 -04:00 committed by GitHub
parent 836abe68c7
commit 54e6459a41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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)