Use generics for deprecation helpers (#138171)

pull/138173/head
Marc Mueller 2025-02-09 23:38:58 +01:00 committed by GitHub
parent 57ab567d08
commit 9467709068
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 9 deletions

View File

@ -244,35 +244,35 @@ def _print_deprecation_warning_internal_impl(
)
class DeprecatedConstant(NamedTuple):
class DeprecatedConstant[T](NamedTuple):
"""Deprecated constant."""
value: Any
value: T
replacement: str
breaks_in_ha_version: str | None
class DeprecatedConstantEnum(NamedTuple):
class DeprecatedConstantEnum[T: (StrEnum | IntEnum | IntFlag)](NamedTuple):
"""Deprecated constant."""
enum: StrEnum | IntEnum | IntFlag
enum: T
breaks_in_ha_version: str | None
class DeprecatedAlias(NamedTuple):
class DeprecatedAlias[T](NamedTuple):
"""Deprecated alias."""
value: Any
value: T
replacement: str
breaks_in_ha_version: str | None
class DeferredDeprecatedAlias:
class DeferredDeprecatedAlias[T]:
"""Deprecated alias with deferred evaluation of the value."""
def __init__(
self,
value_fn: Callable[[], Any],
value_fn: Callable[[], T],
replacement: str,
breaks_in_ha_version: str | None,
) -> None:
@ -282,7 +282,7 @@ class DeferredDeprecatedAlias:
self._value_fn = value_fn
@functools.cached_property
def value(self) -> Any:
def value(self) -> T:
"""Return the value."""
return self._value_fn()