Buckets:
| """Coordinator to trigger entity updates.""" | |
| from __future__ import annotations | |
| from collections.abc import Callable | |
| from typing import Any | |
| from homeassistant.core import CALLBACK_TYPE, callback | |
| from homeassistant.helpers.update_coordinator import BaseDataUpdateCoordinatorProtocol | |
| class HacsUpdateCoordinator(BaseDataUpdateCoordinatorProtocol): | |
| """Dispatch updates to update entities.""" | |
| def __init__(self) -> None: | |
| """Initialize.""" | |
| self._listeners: dict[CALLBACK_TYPE, tuple[CALLBACK_TYPE, object | None]] = {} | |
| def async_add_listener( | |
| self, update_callback: CALLBACK_TYPE, context: Any = None | |
| ) -> Callable[[], None]: | |
| """Listen for data updates.""" | |
| def remove_listener() -> None: | |
| """Remove update listener.""" | |
| self._listeners.pop(remove_listener) | |
| self._listeners[remove_listener] = (update_callback, context) | |
| return remove_listener | |
| def async_update_listeners(self) -> None: | |
| """Update all registered listeners.""" | |
| for update_callback, _ in list(self._listeners.values()): | |
| update_callback() | |
Xet Storage Details
- Size:
- 1.18 kB
- Xet hash:
- fc87199a98f39d7fdd01cb568d201edb2f4247726f413c7b976fc8c1a7489684
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.