Avoid mutating entity descriptions in lidarr (#105628)

This commit is contained in:
Erik Montnemery 2023-12-13 15:22:29 +01:00 committed by GitHub
parent abac68f158
commit 7ab003c746
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,8 +2,7 @@
from __future__ import annotations
from collections.abc import Callable
from copy import deepcopy
from dataclasses import dataclass
import dataclasses
from typing import Any, Generic
from aiopyarr import LidarrQueue, LidarrQueueItem, LidarrRootFolder
@ -40,21 +39,23 @@ def get_modified_description(
description: LidarrSensorEntityDescription[T], mount: LidarrRootFolder
) -> tuple[LidarrSensorEntityDescription[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 LidarrSensorEntityDescriptionMixIn(Generic[T]):
"""Mixin for required keys."""
value_fn: Callable[[T, str], str | int]
@dataclass
@dataclasses.dataclass
class LidarrSensorEntityDescription(
SensorEntityDescription, LidarrSensorEntityDescriptionMixIn[T], Generic[T]
):