core/homeassistant/components/evil_genius_labs/util.py

22 lines
639 B
Python

"""Utilities for Evil Genius Labs."""
from collections.abc import Callable
from functools import wraps
from typing import Any, TypeVar, cast
from . import EvilGeniusEntity
CallableT = TypeVar("CallableT", bound=Callable)
def update_when_done(func: CallableT) -> CallableT:
"""Decorate function to trigger update when function is done."""
@wraps(func)
async def wrapper(self: EvilGeniusEntity, *args: Any, **kwargs: Any) -> Any:
"""Wrap function."""
result = await func(self, *args, **kwargs)
await self.coordinator.async_request_refresh()
return result
return cast(CallableT, wrapper)