Use generics for deprecation helpers (#138171)
parent
57ab567d08
commit
9467709068
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue