From 8518d46d28b6f42e94c0fd17ffe5dedad9ee12e9 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 18 Dec 2023 14:03:41 +0100 Subject: [PATCH] Avoid mutating entity descriptions in radarr (#105972) --- homeassistant/components/radarr/sensor.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/radarr/sensor.py b/homeassistant/components/radarr/sensor.py index ab4315b269a..f36516ac05b 100644 --- a/homeassistant/components/radarr/sensor.py +++ b/homeassistant/components/radarr/sensor.py @@ -2,8 +2,7 @@ from __future__ import annotations from collections.abc import Callable -from copy import deepcopy -from dataclasses import dataclass +import dataclasses from datetime import UTC, datetime from typing import Any, Generic @@ -39,21 +38,23 @@ def get_modified_description( description: RadarrSensorEntityDescription[T], mount: RootFolder ) -> tuple[RadarrSensorEntityDescription[T], str]: """Return modified description and folder name.""" - desc = deepcopy(description) name = mount.path.rsplit("/")[-1].rsplit("\\")[-1] - desc.key = f"{description.key}_{name}" - desc.name = f"{description.name} {name}".capitalize() + desc = dataclasses.replace( + description, + key=f"{description.key}_{name}", + name=f"{description.name} {name}".capitalize(), + ) return desc, name -@dataclass +@dataclasses.dataclass class RadarrSensorEntityDescriptionMixIn(Generic[T]): """Mixin for required keys.""" value_fn: Callable[[T, str], str | int | datetime] -@dataclass +@dataclasses.dataclass class RadarrSensorEntityDescription( SensorEntityDescription, RadarrSensorEntityDescriptionMixIn[T], Generic[T] ):