mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 00:37:53 +00:00
Replace EventType with Event [helpers] (#112743)
This commit is contained in:
parent
3db28d46b2
commit
b026b5d589
@ -47,6 +47,7 @@ from homeassistant.const import (
|
||||
from homeassistant.core import (
|
||||
CALLBACK_TYPE,
|
||||
Context,
|
||||
Event,
|
||||
HassJobType,
|
||||
HomeAssistant,
|
||||
callback,
|
||||
@ -1519,7 +1520,7 @@ class Entity(
|
||||
|
||||
@callback
|
||||
def _async_device_registry_updated(
|
||||
self, event: EventType[EventDeviceRegistryUpdatedData]
|
||||
self, event: Event[EventDeviceRegistryUpdatedData]
|
||||
) -> None:
|
||||
"""Handle device registry update."""
|
||||
data = event.data
|
||||
|
@ -32,6 +32,7 @@ from homeassistant.const import (
|
||||
)
|
||||
from homeassistant.core import (
|
||||
CALLBACK_TYPE,
|
||||
Event,
|
||||
HassJob,
|
||||
HassJobType,
|
||||
HomeAssistant,
|
||||
@ -55,7 +56,7 @@ from .entity_registry import (
|
||||
from .ratelimit import KeyedRateLimit
|
||||
from .sun import get_astral_event_next
|
||||
from .template import RenderInfo, Template, result_as_boolean
|
||||
from .typing import EventType, TemplateVarsType
|
||||
from .typing import TemplateVarsType
|
||||
|
||||
TRACK_STATE_CHANGE_CALLBACKS = "track_state_change_callbacks"
|
||||
TRACK_STATE_CHANGE_LISTENER = "track_state_change_listener"
|
||||
@ -99,16 +100,16 @@ class _KeyedEventTracker(Generic[_TypedDictT]):
|
||||
dispatcher_callable: Callable[
|
||||
[
|
||||
HomeAssistant,
|
||||
dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]],
|
||||
EventType[_TypedDictT],
|
||||
dict[str, list[HassJob[[Event[_TypedDictT]], Any]]],
|
||||
Event[_TypedDictT],
|
||||
],
|
||||
None,
|
||||
]
|
||||
filter_callable: Callable[
|
||||
[
|
||||
HomeAssistant,
|
||||
dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]],
|
||||
EventType[_TypedDictT],
|
||||
dict[str, list[HassJob[[Event[_TypedDictT]], Any]]],
|
||||
Event[_TypedDictT],
|
||||
],
|
||||
bool,
|
||||
]
|
||||
@ -236,7 +237,7 @@ def async_track_state_change(
|
||||
job = HassJob(action, f"track state change {entity_ids} {from_state} {to_state}")
|
||||
|
||||
@callback
|
||||
def state_change_filter(event: EventType[EventStateChangedData]) -> bool:
|
||||
def state_change_filter(event: Event[EventStateChangedData]) -> bool:
|
||||
"""Handle specific state changes."""
|
||||
if from_state is not None:
|
||||
old_state_str: str | None = None
|
||||
@ -257,7 +258,7 @@ def async_track_state_change(
|
||||
return True
|
||||
|
||||
@callback
|
||||
def state_change_dispatcher(event: EventType[EventStateChangedData]) -> None:
|
||||
def state_change_dispatcher(event: Event[EventStateChangedData]) -> None:
|
||||
"""Handle specific state changes."""
|
||||
hass.async_run_hass_job(
|
||||
job,
|
||||
@ -267,7 +268,7 @@ def async_track_state_change(
|
||||
)
|
||||
|
||||
@callback
|
||||
def state_change_listener(event: EventType[EventStateChangedData]) -> None:
|
||||
def state_change_listener(event: Event[EventStateChangedData]) -> None:
|
||||
"""Handle specific state changes."""
|
||||
if not state_change_filter(event):
|
||||
return
|
||||
@ -299,7 +300,7 @@ track_state_change = threaded_listener_factory(async_track_state_change)
|
||||
def async_track_state_change_event(
|
||||
hass: HomeAssistant,
|
||||
entity_ids: str | Iterable[str],
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
job_type: HassJobType | None = None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track specific state change events indexed by entity_id.
|
||||
@ -321,8 +322,8 @@ def async_track_state_change_event(
|
||||
@callback
|
||||
def _async_dispatch_entity_id_event(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]],
|
||||
event: EventType[EventStateChangedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]],
|
||||
event: Event[EventStateChangedData],
|
||||
) -> None:
|
||||
"""Dispatch to listeners."""
|
||||
if not (callbacks_list := callbacks.get(event.data["entity_id"])):
|
||||
@ -341,8 +342,8 @@ def _async_dispatch_entity_id_event(
|
||||
@callback
|
||||
def _async_state_change_filter(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]],
|
||||
event: EventType[EventStateChangedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]],
|
||||
event: Event[EventStateChangedData],
|
||||
) -> bool:
|
||||
"""Filter state changes by entity_id."""
|
||||
return event.data["entity_id"] in callbacks
|
||||
@ -362,7 +363,7 @@ _KEYED_TRACK_STATE_CHANGE = _KeyedEventTracker(
|
||||
def _async_track_state_change_event(
|
||||
hass: HomeAssistant,
|
||||
entity_ids: str | Iterable[str],
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
job_type: HassJobType | None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""async_track_state_change_event without lowercasing."""
|
||||
@ -381,8 +382,8 @@ def _remove_listener(
|
||||
hass: HomeAssistant,
|
||||
listeners_key: str,
|
||||
keys: Iterable[str],
|
||||
job: HassJob[[EventType[_TypedDictT]], Any],
|
||||
callbacks: dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]],
|
||||
job: HassJob[[Event[_TypedDictT]], Any],
|
||||
callbacks: dict[str, list[HassJob[[Event[_TypedDictT]], Any]]],
|
||||
) -> None:
|
||||
"""Remove listener."""
|
||||
for key in keys:
|
||||
@ -401,7 +402,7 @@ def _async_track_event(
|
||||
tracker: _KeyedEventTracker[_TypedDictT],
|
||||
hass: HomeAssistant,
|
||||
keys: str | Iterable[str],
|
||||
action: Callable[[EventType[_TypedDictT]], None],
|
||||
action: Callable[[Event[_TypedDictT]], None],
|
||||
job_type: HassJobType | None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track an event by a specific key.
|
||||
@ -421,7 +422,7 @@ def _async_track_event(
|
||||
hass_data = hass.data
|
||||
callbacks_key = tracker.callbacks_key
|
||||
|
||||
callbacks: dict[str, list[HassJob[[EventType[_TypedDictT]], Any]]] | None
|
||||
callbacks: dict[str, list[HassJob[[Event[_TypedDictT]], Any]]] | None
|
||||
if not (callbacks := hass_data.get(callbacks_key)):
|
||||
callbacks = hass_data[callbacks_key] = {}
|
||||
|
||||
@ -449,10 +450,8 @@ def _async_track_event(
|
||||
@callback
|
||||
def _async_dispatch_old_entity_id_or_entity_id_event(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[
|
||||
str, list[HassJob[[EventType[EventEntityRegistryUpdatedData]], Any]]
|
||||
],
|
||||
event: EventType[EventEntityRegistryUpdatedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventEntityRegistryUpdatedData]], Any]]],
|
||||
event: Event[EventEntityRegistryUpdatedData],
|
||||
) -> None:
|
||||
"""Dispatch to listeners."""
|
||||
if not (
|
||||
@ -475,10 +474,8 @@ def _async_dispatch_old_entity_id_or_entity_id_event(
|
||||
@callback
|
||||
def _async_entity_registry_updated_filter(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[
|
||||
str, list[HassJob[[EventType[EventEntityRegistryUpdatedData]], Any]]
|
||||
],
|
||||
event: EventType[EventEntityRegistryUpdatedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventEntityRegistryUpdatedData]], Any]]],
|
||||
event: Event[EventEntityRegistryUpdatedData],
|
||||
) -> bool:
|
||||
"""Filter entity registry updates by entity_id."""
|
||||
return event.data.get("old_entity_id", event.data["entity_id"]) in callbacks
|
||||
@ -499,7 +496,7 @@ _KEYED_TRACK_ENTITY_REGISTRY_UPDATED = _KeyedEventTracker(
|
||||
def async_track_entity_registry_updated_event(
|
||||
hass: HomeAssistant,
|
||||
entity_ids: str | Iterable[str],
|
||||
action: Callable[[EventType[EventEntityRegistryUpdatedData]], Any],
|
||||
action: Callable[[Event[EventEntityRegistryUpdatedData]], Any],
|
||||
job_type: HassJobType | None = None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track specific entity registry updated events indexed by entity_id.
|
||||
@ -516,10 +513,8 @@ def async_track_entity_registry_updated_event(
|
||||
@callback
|
||||
def _async_device_registry_updated_filter(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[
|
||||
str, list[HassJob[[EventType[EventDeviceRegistryUpdatedData]], Any]]
|
||||
],
|
||||
event: EventType[EventDeviceRegistryUpdatedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventDeviceRegistryUpdatedData]], Any]]],
|
||||
event: Event[EventDeviceRegistryUpdatedData],
|
||||
) -> bool:
|
||||
"""Filter device registry updates by device_id."""
|
||||
return event.data["device_id"] in callbacks
|
||||
@ -528,10 +523,8 @@ def _async_device_registry_updated_filter(
|
||||
@callback
|
||||
def _async_dispatch_device_id_event(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[
|
||||
str, list[HassJob[[EventType[EventDeviceRegistryUpdatedData]], Any]]
|
||||
],
|
||||
event: EventType[EventDeviceRegistryUpdatedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventDeviceRegistryUpdatedData]], Any]]],
|
||||
event: Event[EventDeviceRegistryUpdatedData],
|
||||
) -> None:
|
||||
"""Dispatch to listeners."""
|
||||
if not (callbacks_list := callbacks.get(event.data["device_id"])):
|
||||
@ -561,7 +554,7 @@ _KEYED_TRACK_DEVICE_REGISTRY_UPDATED = _KeyedEventTracker(
|
||||
def async_track_device_registry_updated_event(
|
||||
hass: HomeAssistant,
|
||||
device_ids: str | Iterable[str],
|
||||
action: Callable[[EventType[EventDeviceRegistryUpdatedData]], Any],
|
||||
action: Callable[[Event[EventDeviceRegistryUpdatedData]], Any],
|
||||
job_type: HassJobType | None = None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track specific device registry updated events indexed by device_id.
|
||||
@ -576,8 +569,8 @@ def async_track_device_registry_updated_event(
|
||||
@callback
|
||||
def _async_dispatch_domain_event(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]],
|
||||
event: EventType[EventStateChangedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]],
|
||||
event: Event[EventStateChangedData],
|
||||
) -> None:
|
||||
"""Dispatch domain event listeners."""
|
||||
domain = split_entity_id(event.data["entity_id"])[0]
|
||||
@ -593,8 +586,8 @@ def _async_dispatch_domain_event(
|
||||
@callback
|
||||
def _async_domain_added_filter(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]],
|
||||
event: EventType[EventStateChangedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]],
|
||||
event: Event[EventStateChangedData],
|
||||
) -> bool:
|
||||
"""Filter state changes by entity_id."""
|
||||
return event.data["old_state"] is None and (
|
||||
@ -607,7 +600,7 @@ def _async_domain_added_filter(
|
||||
def async_track_state_added_domain(
|
||||
hass: HomeAssistant,
|
||||
domains: str | Iterable[str],
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
job_type: HassJobType | None = None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track state change events when an entity is added to domains."""
|
||||
@ -630,7 +623,7 @@ _KEYED_TRACK_STATE_ADDED_DOMAIN = _KeyedEventTracker(
|
||||
def _async_track_state_added_domain(
|
||||
hass: HomeAssistant,
|
||||
domains: str | Iterable[str],
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
job_type: HassJobType | None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track state change events when an entity is added to domains."""
|
||||
@ -642,8 +635,8 @@ def _async_track_state_added_domain(
|
||||
@callback
|
||||
def _async_domain_removed_filter(
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[EventType[EventStateChangedData]], Any]]],
|
||||
event: EventType[EventStateChangedData],
|
||||
callbacks: dict[str, list[HassJob[[Event[EventStateChangedData]], Any]]],
|
||||
event: Event[EventStateChangedData],
|
||||
) -> bool:
|
||||
"""Filter state changes by entity_id."""
|
||||
return event.data["new_state"] is None and (
|
||||
@ -666,7 +659,7 @@ _KEYED_TRACK_STATE_REMOVED_DOMAIN = _KeyedEventTracker(
|
||||
def async_track_state_removed_domain(
|
||||
hass: HomeAssistant,
|
||||
domains: str | Iterable[str],
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
job_type: HassJobType | None = None,
|
||||
) -> CALLBACK_TYPE:
|
||||
"""Track state change events when an entity is removed from domains."""
|
||||
@ -690,7 +683,7 @@ class _TrackStateChangeFiltered:
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
track_states: TrackStates,
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
) -> None:
|
||||
"""Handle removal / refresh of tracker init."""
|
||||
self.hass = hass
|
||||
@ -794,7 +787,7 @@ class _TrackStateChangeFiltered:
|
||||
)
|
||||
|
||||
@callback
|
||||
def _state_added(self, event: EventType[EventStateChangedData]) -> None:
|
||||
def _state_added(self, event: Event[EventStateChangedData]) -> None:
|
||||
self._cancel_listener(_ENTITIES_LISTENER)
|
||||
self._setup_entities_listener(
|
||||
self._last_track_states.domains, self._last_track_states.entities
|
||||
@ -823,7 +816,7 @@ class _TrackStateChangeFiltered:
|
||||
def async_track_state_change_filtered(
|
||||
hass: HomeAssistant,
|
||||
track_states: TrackStates,
|
||||
action: Callable[[EventType[EventStateChangedData]], Any],
|
||||
action: Callable[[Event[EventStateChangedData]], Any],
|
||||
) -> _TrackStateChangeFiltered:
|
||||
"""Track state changes with a TrackStates filter that can be updated.
|
||||
|
||||
@ -897,7 +890,7 @@ def async_track_template(
|
||||
|
||||
@callback
|
||||
def _template_changed_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
"""Check if condition is correct and run action."""
|
||||
@ -1088,7 +1081,7 @@ class TrackTemplateResultInfo:
|
||||
self,
|
||||
track_template_: TrackTemplate,
|
||||
now: datetime,
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
) -> bool | TrackTemplateResult:
|
||||
"""Re-render the template if conditions match.
|
||||
|
||||
@ -1177,7 +1170,7 @@ class TrackTemplateResultInfo:
|
||||
@callback
|
||||
def _refresh(
|
||||
self,
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
track_templates: Iterable[TrackTemplate] | None = None,
|
||||
replayed: bool | None = False,
|
||||
) -> None:
|
||||
@ -1273,7 +1266,7 @@ class TrackTemplateResultInfo:
|
||||
|
||||
TrackTemplateResultListener = Callable[
|
||||
[
|
||||
EventType[EventStateChangedData] | None,
|
||||
Event[EventStateChangedData] | None,
|
||||
list[TrackTemplateResult],
|
||||
],
|
||||
Coroutine[Any, Any, None] | None,
|
||||
@ -1381,7 +1374,7 @@ def async_track_same_state(
|
||||
hass.async_run_hass_job(job)
|
||||
|
||||
@callback
|
||||
def state_for_cancel_listener(event: EventType[EventStateChangedData]) -> None:
|
||||
def state_for_cancel_listener(event: Event[EventStateChangedData]) -> None:
|
||||
"""Fire on changes and cancel for listener if changed."""
|
||||
entity = event.data["entity_id"]
|
||||
from_state = event.data["old_state"]
|
||||
@ -1919,7 +1912,7 @@ def _render_infos_to_track_states(render_infos: Iterable[RenderInfo]) -> TrackSt
|
||||
|
||||
@callback
|
||||
def _event_triggers_rerender(
|
||||
event: EventType[EventStateChangedData], info: RenderInfo
|
||||
event: Event[EventStateChangedData], info: RenderInfo
|
||||
) -> bool:
|
||||
"""Determine if a template should be re-rendered from an event."""
|
||||
entity_id = event.data["entity_id"]
|
||||
@ -1935,7 +1928,7 @@ def _event_triggers_rerender(
|
||||
|
||||
@callback
|
||||
def _rate_limit_for_event(
|
||||
event: EventType[EventStateChangedData],
|
||||
event: Event[EventStateChangedData],
|
||||
info: RenderInfo,
|
||||
track_template_: TrackTemplate,
|
||||
) -> timedelta | None:
|
||||
|
@ -15,7 +15,7 @@ import pytest
|
||||
|
||||
from homeassistant.const import MATCH_ALL
|
||||
import homeassistant.core as ha
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.core import Event, HomeAssistant, callback
|
||||
from homeassistant.exceptions import TemplateError
|
||||
from homeassistant.helpers.device_registry import EVENT_DEVICE_REGISTRY_UPDATED
|
||||
from homeassistant.helpers.entity_registry import EVENT_ENTITY_REGISTRY_UPDATED
|
||||
@ -45,7 +45,6 @@ from homeassistant.helpers.event import (
|
||||
track_point_in_utc_time,
|
||||
)
|
||||
from homeassistant.helpers.template import Template, result_as_boolean
|
||||
from homeassistant.helpers.typing import EventType
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
@ -299,21 +298,21 @@ async def test_async_track_state_change_filtered(hass: HomeAssistant) -> None:
|
||||
multiple_entity_id_tracker = []
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
single_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def multiple_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
multiple_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def callback_that_throws(event: EventType[EventStateChangedData]) -> None:
|
||||
def callback_that_throws(event: Event[EventStateChangedData]) -> None:
|
||||
raise ValueError
|
||||
|
||||
track_single = async_track_state_change_filtered(
|
||||
@ -435,21 +434,21 @@ async def test_async_track_state_change_event(hass: HomeAssistant) -> None:
|
||||
multiple_entity_id_tracker = []
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
single_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def multiple_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
multiple_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def callback_that_throws(event: EventType[EventStateChangedData]) -> None:
|
||||
def callback_that_throws(event: Event[EventStateChangedData]) -> None:
|
||||
raise ValueError
|
||||
|
||||
unsub_single = async_track_state_change_event(
|
||||
@ -543,14 +542,14 @@ async def test_async_track_state_added_domain(hass: HomeAssistant) -> None:
|
||||
multiple_entity_id_tracker = []
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
single_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def multiple_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
@ -657,14 +656,14 @@ async def test_async_track_state_removed_domain(hass: HomeAssistant) -> None:
|
||||
multiple_entity_id_tracker = []
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
single_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def multiple_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
@ -741,14 +740,14 @@ async def test_async_track_state_removed_domain_match_all(hass: HomeAssistant) -
|
||||
match_all_entity_id_tracker = []
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
single_entity_id_tracker.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def match_all_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def match_all_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
@ -969,7 +968,7 @@ async def test_track_template_result(hass: HomeAssistant) -> None:
|
||||
)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -981,7 +980,7 @@ async def test_track_template_result(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -994,7 +993,7 @@ async def test_track_template_result(hass: HomeAssistant) -> None:
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -1064,7 +1063,7 @@ async def test_track_template_result_none(hass: HomeAssistant) -> None:
|
||||
)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -1077,7 +1076,7 @@ async def test_track_template_result_none(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -1094,7 +1093,7 @@ async def test_track_template_result_none(hass: HomeAssistant) -> None:
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -1144,7 +1143,7 @@ async def test_track_template_result_super_template(hass: HomeAssistant) -> None
|
||||
)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1165,7 +1164,7 @@ async def test_track_template_result_super_template(hass: HomeAssistant) -> None
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1187,7 +1186,7 @@ async def test_track_template_result_super_template(hass: HomeAssistant) -> None
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1303,7 +1302,7 @@ async def test_track_template_result_super_template_initially_false(
|
||||
await hass.async_block_till_done()
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1324,7 +1323,7 @@ async def test_track_template_result_super_template_initially_false(
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1346,7 +1345,7 @@ async def test_track_template_result_super_template_initially_false(
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1474,7 +1473,7 @@ async def test_track_template_result_super_template_2(
|
||||
return result_as_boolean(result)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1497,7 +1496,7 @@ async def test_track_template_result_super_template_2(
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1521,7 +1520,7 @@ async def test_track_template_result_super_template_2(
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1629,7 +1628,7 @@ async def test_track_template_result_super_template_2_initially_false(
|
||||
return result_as_boolean(result)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1652,7 +1651,7 @@ async def test_track_template_result_super_template_2_initially_false(
|
||||
|
||||
@ha.callback
|
||||
def wildcard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1676,7 +1675,7 @@ async def test_track_template_result_super_template_2_initially_false(
|
||||
)
|
||||
|
||||
async def wildercard_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -1759,7 +1758,7 @@ async def test_track_template_result_complex(hass: HomeAssistant) -> None:
|
||||
template_complex = Template(template_complex_str, hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -1915,7 +1914,7 @@ async def test_track_template_result_with_wildcard(hass: HomeAssistant) -> None:
|
||||
template_complex = Template(template_complex_str, hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -1970,7 +1969,7 @@ async def test_track_template_result_with_group(hass: HomeAssistant) -> None:
|
||||
template_complex = Template(template_complex_str, hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -2030,7 +2029,7 @@ async def test_track_template_result_and_conditional(hass: HomeAssistant) -> Non
|
||||
template = Template(template_str, hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -2098,7 +2097,7 @@ async def test_track_template_result_and_conditional_upper_case(
|
||||
template = Template(template_str, hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -2160,7 +2159,7 @@ async def test_track_template_result_iterator(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def iterator_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
iterator_runs.append(updates.pop().result)
|
||||
@ -2196,7 +2195,7 @@ async def test_track_template_result_iterator(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def filter_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
filter_runs.append(updates.pop().result)
|
||||
@ -2249,7 +2248,7 @@ async def test_track_template_result_errors(
|
||||
|
||||
@ha.callback
|
||||
def syntax_error_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -2272,7 +2271,7 @@ async def test_track_template_result_errors(
|
||||
|
||||
@ha.callback
|
||||
def not_exist_runs_error_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
template_track = updates.pop()
|
||||
@ -2340,7 +2339,7 @@ async def test_track_template_result_transient_errors(
|
||||
|
||||
@ha.callback
|
||||
def sometimes_error_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
track_result = updates.pop()
|
||||
@ -2388,7 +2387,7 @@ async def test_static_string(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2411,7 +2410,7 @@ async def test_track_template_rate_limit(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2473,7 +2472,7 @@ async def test_track_template_rate_limit_super(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -2549,7 +2548,7 @@ async def test_track_template_rate_limit_super_2(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -2621,7 +2620,7 @@ async def test_track_template_rate_limit_super_3(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for track_result in updates:
|
||||
@ -2695,7 +2694,7 @@ async def test_track_template_rate_limit_suppress_listener(hass: HomeAssistant)
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2795,7 +2794,7 @@ async def test_track_template_rate_limit_five(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2834,7 +2833,7 @@ async def test_track_template_has_default_rate_limit(hass: HomeAssistant) -> Non
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2878,7 +2877,7 @@ async def test_track_template_unavailable_states_has_default_rate_limit(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2922,7 +2921,7 @@ async def test_specifically_referenced_entity_is_not_rate_limited(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -2968,7 +2967,7 @@ async def test_track_two_templates_with_different_rate_limits(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
for update in updates:
|
||||
@ -3032,7 +3031,7 @@ async def test_string(hass: HomeAssistant) -> None:
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -3055,7 +3054,7 @@ async def test_track_template_result_refresh_cancel(hass: HomeAssistant) -> None
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates.pop().result)
|
||||
@ -3120,7 +3119,7 @@ async def test_async_track_template_result_multiple_templates(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates)
|
||||
@ -3184,7 +3183,7 @@ async def test_async_track_template_result_multiple_templates_mixing_domain(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates)
|
||||
@ -3251,7 +3250,7 @@ async def test_track_template_with_time(hass: HomeAssistant) -> None:
|
||||
template_complex = Template("{{ states.switch.test.state and now() }}", hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -3284,7 +3283,7 @@ async def test_track_template_with_time_default(hass: HomeAssistant) -> None:
|
||||
template_complex = Template("{{ now() }}", hass)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -3338,7 +3337,7 @@ async def test_track_template_with_time_that_leaves_scope(
|
||||
)
|
||||
|
||||
def specific_run_callback(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
specific_runs.append(updates.pop().result)
|
||||
@ -3409,7 +3408,7 @@ async def test_async_track_template_result_multiple_templates_mixing_listeners(
|
||||
|
||||
@ha.callback
|
||||
def refresh_listener(
|
||||
event: EventType[EventStateChangedData] | None,
|
||||
event: Event[EventStateChangedData] | None,
|
||||
updates: list[TrackTemplateResult],
|
||||
) -> None:
|
||||
refresh_runs.append(updates)
|
||||
@ -4437,14 +4436,14 @@ async def test_track_state_change_event_chain_multple_entity(
|
||||
tracker_unsub = []
|
||||
|
||||
@ha.callback
|
||||
def chained_single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def chained_single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
chained_tracker_called.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
@ -4491,14 +4490,14 @@ async def test_track_state_change_event_chain_single_entity(
|
||||
tracker_unsub = []
|
||||
|
||||
@ha.callback
|
||||
def chained_single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def chained_single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
chained_tracker_called.append((old_state, new_state))
|
||||
|
||||
@ha.callback
|
||||
def single_run_callback(event: EventType[EventStateChangedData]) -> None:
|
||||
def single_run_callback(event: Event[EventStateChangedData]) -> None:
|
||||
old_state = event.data["old_state"]
|
||||
new_state = event.data["new_state"]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user