Make use_device_name a cached_property in the base entity class

There is a small risk that _attr_name or entity_description
would not be set before state was first written, but that
would likely be a bug.
This commit is contained in:
J. Nick Koston 2024-06-15 21:29:49 -05:00
parent c519e12042
commit 1f2996542f
No known key found for this signature in database
1 changed files with 5 additions and 7 deletions

View File

@ -581,7 +581,7 @@ class Entity(
"""Return a unique ID."""
return self._attr_unique_id
@property
@cached_property
def use_device_name(self) -> bool:
"""Return if this entity does not have its own name.
@ -589,14 +589,12 @@ class Entity(
"""
if hasattr(self, "_attr_name"):
return not self._attr_name
if name_translation_key := self._name_translation_key:
if name_translation_key in self.platform.platform_translations:
return False
if (
name_translation_key := self._name_translation_key
) and name_translation_key in self.platform.platform_translations:
return False
if hasattr(self, "entity_description"):
return not self.entity_description.name
return not self.name
@cached_property