Fix typing `TrackTemplateResultListener` [helpers.event] (#63541)

pull/63573/head
Marc Mueller 2022-01-07 00:43:54 +01:00 committed by GitHub
parent f8a78a49bb
commit 198ade5e2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 8 deletions

View File

@ -354,7 +354,9 @@ async def handle_render_template(
return
@callback
def _template_listener(event: Event, updates: list[TrackTemplateResult]) -> None:
def _template_listener(
event: Event | None, updates: list[TrackTemplateResult]
) -> None:
nonlocal info
track_template_result = updates.pop()
result = track_template_result.result

View File

@ -9,7 +9,7 @@ from datetime import datetime, timedelta
import functools as ft
import logging
import time
from typing import Any, Callable, List, cast
from typing import Any, Callable, List, Union, cast
import attr
@ -533,7 +533,7 @@ class _TrackStateChangeFiltered:
"""Handle removal / refresh of tracker init."""
self.hass = hass
self._action = action
self._listeners: dict[str, Callable] = {}
self._listeners: dict[str, Callable[[], None]] = {}
self._last_track_states: TrackStates = track_states
@callback
@ -721,7 +721,7 @@ def async_track_template(
@callback
def _template_changed_listener(
event: Event, updates: list[TrackTemplateResult]
event: Event | None, updates: list[TrackTemplateResult]
) -> None:
"""Check if condition is correct and run action."""
track_result = updates.pop()
@ -769,7 +769,7 @@ class _TrackTemplateResultInfo:
self,
hass: HomeAssistant,
track_templates: Sequence[TrackTemplate],
action: Callable,
action: Callable[[Event | None, list[TrackTemplateResult]], None],
has_super_template: bool = False,
) -> None:
"""Handle removal / refresh of tracker init."""
@ -786,7 +786,7 @@ class _TrackTemplateResultInfo:
self._rate_limit = KeyedRateLimit(hass)
self._info: dict[Template, RenderInfo] = {}
self._track_state_changes: _TrackStateChangeFiltered | None = None
self._time_listeners: dict[Template, Callable] = {}
self._time_listeners: dict[Template, Callable[[], None]] = {}
def async_setup(self, raise_on_template_error: bool, strict: bool = False) -> None:
"""Activation of template tracking."""
@ -986,7 +986,7 @@ class _TrackTemplateResultInfo:
replayed is True if the event is being replayed because the
rate limit was hit.
"""
updates = []
updates: list[TrackTemplateResult] = []
info_changed = False
now = event.time_fired if not replayed and event else dt_util.utcnow()
@ -1075,7 +1075,7 @@ class _TrackTemplateResultInfo:
TrackTemplateResultListener = Callable[
[
Event,
Union[Event, None],
List[TrackTemplateResult],
],
None,