From 2401580b6f41fe72f1360493ee46e8a842bd04ba Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 30 Apr 2024 17:54:33 -0500 Subject: [PATCH] Make a copy of capability_attributes instead of making a new dict (#116477) --- homeassistant/components/input_datetime/__init__.py | 2 +- homeassistant/components/sensor/__init__.py | 2 +- homeassistant/components/vacuum/__init__.py | 3 +-- homeassistant/components/water_heater/__init__.py | 3 +-- homeassistant/helpers/entity.py | 6 +++--- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/input_datetime/__init__.py b/homeassistant/components/input_datetime/__init__.py index c64ef506670..9546b51ee4f 100644 --- a/homeassistant/components/input_datetime/__init__.py +++ b/homeassistant/components/input_datetime/__init__.py @@ -333,7 +333,7 @@ class InputDatetime(collection.CollectionEntity, RestoreEntity): return self._current_datetime.strftime(FMT_TIME) @property - def capability_attributes(self) -> dict: + def capability_attributes(self) -> dict[str, Any]: """Return the capability attributes.""" return { CONF_HAS_DATE: self.has_date, diff --git a/homeassistant/components/sensor/__init__.py b/homeassistant/components/sensor/__init__.py index a955e861c20..ffe324fc8c4 100644 --- a/homeassistant/components/sensor/__init__.py +++ b/homeassistant/components/sensor/__init__.py @@ -360,7 +360,7 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_): @property @override - def capability_attributes(self) -> Mapping[str, Any] | None: + def capability_attributes(self) -> dict[str, Any] | None: """Return the capability attributes.""" if state_class := self.state_class: return {ATTR_STATE_CLASS: state_class} diff --git a/homeassistant/components/vacuum/__init__.py b/homeassistant/components/vacuum/__init__.py index fab26ebc8c5..b50068de149 100644 --- a/homeassistant/components/vacuum/__init__.py +++ b/homeassistant/components/vacuum/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations -from collections.abc import Mapping from datetime import timedelta from enum import IntFlag from functools import cached_property, partial @@ -231,7 +230,7 @@ class StateVacuumEntity( ) @property - def capability_attributes(self) -> Mapping[str, Any] | None: + def capability_attributes(self) -> dict[str, Any] | None: """Return capability attributes.""" if VacuumEntityFeature.FAN_SPEED in self.supported_features_compat: return {ATTR_FAN_SPEED_LIST: self.fan_speed_list} diff --git a/homeassistant/components/water_heater/__init__.py b/homeassistant/components/water_heater/__init__.py index 6ea0a2bac6a..d6871947b77 100644 --- a/homeassistant/components/water_heater/__init__.py +++ b/homeassistant/components/water_heater/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations -from collections.abc import Mapping from datetime import timedelta from enum import IntFlag import functools as ft @@ -225,7 +224,7 @@ class WaterHeaterEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_): return PRECISION_WHOLE @property - def capability_attributes(self) -> Mapping[str, Any]: + def capability_attributes(self) -> dict[str, Any]: """Return capability attributes.""" data: dict[str, Any] = { ATTR_MIN_TEMP: show_temp( diff --git a/homeassistant/helpers/entity.py b/homeassistant/helpers/entity.py index cc8374350cc..3d6623a37f8 100644 --- a/homeassistant/helpers/entity.py +++ b/homeassistant/helpers/entity.py @@ -533,7 +533,7 @@ class Entity( _attr_assumed_state: bool = False _attr_attribution: str | None = None _attr_available: bool = True - _attr_capability_attributes: Mapping[str, Any] | None = None + _attr_capability_attributes: dict[str, Any] | None = None _attr_device_class: str | None _attr_device_info: DeviceInfo | None = None _attr_entity_category: EntityCategory | None @@ -744,7 +744,7 @@ class Entity( return self._attr_state @cached_property - def capability_attributes(self) -> Mapping[str, Any] | None: + def capability_attributes(self) -> dict[str, Any] | None: """Return the capability attributes. Attributes that explain the capabilities of an entity. @@ -1065,7 +1065,7 @@ class Entity( entry = self.registry_entry capability_attr = self.capability_attributes - attr = dict(capability_attr) if capability_attr else {} + attr = capability_attr.copy() if capability_attr else {} shadowed_attr = {} available = self.available # only call self.available once per update cycle