mirror of
https://github.com/home-assistant/core.git
synced 2025-07-29 16:17:20 +00:00
Use generics for deprecation helpers (#138171)
This commit is contained in:
parent
57ab567d08
commit
9467709068
@ -244,35 +244,35 @@ def _print_deprecation_warning_internal_impl(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DeprecatedConstant(NamedTuple):
|
class DeprecatedConstant[T](NamedTuple):
|
||||||
"""Deprecated constant."""
|
"""Deprecated constant."""
|
||||||
|
|
||||||
value: Any
|
value: T
|
||||||
replacement: str
|
replacement: str
|
||||||
breaks_in_ha_version: str | None
|
breaks_in_ha_version: str | None
|
||||||
|
|
||||||
|
|
||||||
class DeprecatedConstantEnum(NamedTuple):
|
class DeprecatedConstantEnum[T: (StrEnum | IntEnum | IntFlag)](NamedTuple):
|
||||||
"""Deprecated constant."""
|
"""Deprecated constant."""
|
||||||
|
|
||||||
enum: StrEnum | IntEnum | IntFlag
|
enum: T
|
||||||
breaks_in_ha_version: str | None
|
breaks_in_ha_version: str | None
|
||||||
|
|
||||||
|
|
||||||
class DeprecatedAlias(NamedTuple):
|
class DeprecatedAlias[T](NamedTuple):
|
||||||
"""Deprecated alias."""
|
"""Deprecated alias."""
|
||||||
|
|
||||||
value: Any
|
value: T
|
||||||
replacement: str
|
replacement: str
|
||||||
breaks_in_ha_version: str | None
|
breaks_in_ha_version: str | None
|
||||||
|
|
||||||
|
|
||||||
class DeferredDeprecatedAlias:
|
class DeferredDeprecatedAlias[T]:
|
||||||
"""Deprecated alias with deferred evaluation of the value."""
|
"""Deprecated alias with deferred evaluation of the value."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
value_fn: Callable[[], Any],
|
value_fn: Callable[[], T],
|
||||||
replacement: str,
|
replacement: str,
|
||||||
breaks_in_ha_version: str | None,
|
breaks_in_ha_version: str | None,
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -282,7 +282,7 @@ class DeferredDeprecatedAlias:
|
|||||||
self._value_fn = value_fn
|
self._value_fn = value_fn
|
||||||
|
|
||||||
@functools.cached_property
|
@functools.cached_property
|
||||||
def value(self) -> Any:
|
def value(self) -> T:
|
||||||
"""Return the value."""
|
"""Return the value."""
|
||||||
return self._value_fn()
|
return self._value_fn()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user