mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Teach CoordinatorEntity to cooperate with its siblings
This commit is contained in:
parent
07ceafed62
commit
a76b1ef5b5
@ -155,8 +155,11 @@ class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], ManualTriggerSensorEnti
|
|||||||
yaml: bool,
|
yaml: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize a web scrape sensor."""
|
"""Initialize a web scrape sensor."""
|
||||||
CoordinatorEntity.__init__(self, coordinator)
|
super().__init__(
|
||||||
ManualTriggerSensorEntity.__init__(self, hass, trigger_entity_config)
|
config=trigger_entity_config,
|
||||||
|
coordinator=coordinator,
|
||||||
|
hass=hass,
|
||||||
|
)
|
||||||
self._select = select
|
self._select = select
|
||||||
self._attr = attr
|
self._attr = attr
|
||||||
self._index = index
|
self._index = index
|
||||||
|
@ -7,6 +7,7 @@ import asyncio
|
|||||||
from collections.abc import Awaitable, Callable, Coroutine, Generator
|
from collections.abc import Awaitable, Callable, Coroutine, Generator
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from functools import cached_property
|
from functools import cached_property
|
||||||
|
from inspect import Parameter, signature
|
||||||
import logging
|
import logging
|
||||||
from random import randint
|
from random import randint
|
||||||
from time import monotonic
|
from time import monotonic
|
||||||
@ -466,9 +467,21 @@ class BaseCoordinatorEntity[
|
|||||||
"""Base class for all Coordinator entities."""
|
"""Base class for all Coordinator entities."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, coordinator: _BaseDataUpdateCoordinatorT, context: Any = None
|
self,
|
||||||
|
coordinator: _BaseDataUpdateCoordinatorT,
|
||||||
|
context: Any = None,
|
||||||
|
**kwargs: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Create the entity with a DataUpdateCoordinator."""
|
"""Create the entity with a DataUpdateCoordinator."""
|
||||||
|
call_super = True
|
||||||
|
if not kwargs:
|
||||||
|
super_parameters = signature(super().__init__).parameters
|
||||||
|
for param in super_parameters.values():
|
||||||
|
if param.default == Parameter.empty:
|
||||||
|
call_super = False
|
||||||
|
break
|
||||||
|
if call_super:
|
||||||
|
super().__init__(**kwargs)
|
||||||
self.coordinator = coordinator
|
self.coordinator = coordinator
|
||||||
self.coordinator_context = context
|
self.coordinator_context = context
|
||||||
|
|
||||||
@ -503,7 +516,7 @@ class CoordinatorEntity(BaseCoordinatorEntity[_DataUpdateCoordinatorT]):
|
|||||||
"""A class for entities using DataUpdateCoordinator."""
|
"""A class for entities using DataUpdateCoordinator."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, coordinator: _DataUpdateCoordinatorT, context: Any = None
|
self, coordinator: _DataUpdateCoordinatorT, context: Any = None, **kwargs: Any
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Create the entity with a DataUpdateCoordinator.
|
"""Create the entity with a DataUpdateCoordinator.
|
||||||
|
|
||||||
@ -511,7 +524,7 @@ class CoordinatorEntity(BaseCoordinatorEntity[_DataUpdateCoordinatorT]):
|
|||||||
|
|
||||||
Necessary to bind TypeVar to correct scope.
|
Necessary to bind TypeVar to correct scope.
|
||||||
"""
|
"""
|
||||||
super().__init__(coordinator, context)
|
super().__init__(coordinator=coordinator, context=context, **kwargs)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def available(self) -> bool:
|
def available(self) -> bool:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user