From 45f025480e2e5b237f77b61510a6048a8ece8ca1 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 17 Apr 2024 08:47:56 -0500 Subject: [PATCH] Avoid linear search to remove a label from the entity registry (#115674) * Avoid linear search to remove a label from the entity registry * simplify --- homeassistant/helpers/entity_registry.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index 3a26505c7da..4e77df49ea6 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -1329,11 +1329,8 @@ class EntityRegistry(BaseRegistry): @callback def async_clear_label_id(self, label_id: str) -> None: """Clear label from registry entries.""" - for entity_id, entry in self.entities.items(): - if label_id in entry.labels: - labels = entry.labels.copy() - labels.remove(label_id) - self.async_update_entity(entity_id, labels=labels) + for entry in self.entities.get_entries_for_label(label_id): + self.async_update_entity(entry.entity_id, labels=entry.labels - {label_id}) @callback def async_clear_config_entry(self, config_entry_id: str) -> None: