Cleanup EventType typing (#97136)

pull/97137/head
Marc Mueller 2023-07-24 13:18:38 +02:00 committed by GitHub
parent 4161f53bea
commit 995c29e052
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 51 additions and 28 deletions

View File

@ -5,8 +5,10 @@ from dataclasses import dataclass
import datetime
from homeassistant.components.recorder import get_instance, history
from homeassistant.core import Event, HomeAssistant, State
from homeassistant.core import HomeAssistant, State
from homeassistant.helpers.event import EventStateChangedData
from homeassistant.helpers.template import Template
from homeassistant.helpers.typing import EventType
import homeassistant.util.dt as dt_util
from .helpers import async_calculate_period, floored_timestamp
@ -55,7 +57,9 @@ class HistoryStats:
self._start = start
self._end = end
async def async_update(self, event: Event | None) -> HistoryStatsState:
async def async_update(
self, event: EventType[EventStateChangedData] | None
) -> HistoryStatsState:
"""Update the stats at a given time."""
# Get previous values of start and end
previous_period_start, previous_period_end = self._period
@ -104,8 +108,7 @@ class HistoryStats:
)
):
new_data = False
if event and event.data["new_state"] is not None:
new_state: State = event.data["new_state"]
if event and (new_state := event.data["new_state"]) is not None:
if (
current_period_start_timestamp
<= floored_timestamp(new_state.last_changed)

View File

@ -129,7 +129,7 @@ async def async_attach_trigger(
_variables = trigger_info["variables"] or {}
@callback
def state_automation_listener(event: EventType[EventStateChangedData]):
def state_automation_listener(event: EventType[EventStateChangedData]) -> None:
"""Listen for state changes and calls action."""
entity = event.data["entity_id"]
from_s = event.data["old_state"]

View File

@ -37,9 +37,11 @@ from homeassistant.const import (
CONF_TYPE,
UnitOfTemperature,
)
from homeassistant.core import Event, HomeAssistant, State, callback, split_entity_id
from homeassistant.core import HomeAssistant, State, callback, split_entity_id
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import EventStateChangedData
from homeassistant.helpers.storage import STORAGE_DIR
from homeassistant.helpers.typing import EventType
from homeassistant.util.unit_conversion import TemperatureConverter
from .const import (
@ -619,9 +621,9 @@ def state_needs_accessory_mode(state: State) -> bool:
)
def state_changed_event_is_same_state(event: Event) -> bool:
def state_changed_event_is_same_state(event: EventType[EventStateChangedData]) -> bool:
"""Check if a state changed event is the same state."""
event_data = event.data
old_state: State | None = event_data.get("old_state")
new_state: State | None = event_data.get("new_state")
old_state = event_data["old_state"]
new_state = event_data["new_state"]
return bool(new_state and old_state and new_state.state == old_state.state)

View File

@ -179,7 +179,7 @@ class Plant(Entity):
self._brightness_history = DailyHistory(self._conf_check_days)
@callback
def _state_changed_event(self, event: EventType[EventStateChangedData]):
def _state_changed_event(self, event: EventType[EventStateChangedData]) -> None:
"""Sensor state change event."""
self.state_changed(event.data["entity_id"], event.data["new_state"])

View File

@ -15,7 +15,7 @@ import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE
from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import (
aiohttp_client,
@ -23,13 +23,17 @@ from homeassistant.helpers import (
device_registry as dr,
entity_registry as er,
)
from homeassistant.helpers.event import async_track_state_change_event
from homeassistant.helpers.event import (
EventStateChangedData,
async_track_state_change_event,
)
from homeassistant.helpers.selector import (
SelectOptionDict,
SelectSelector,
SelectSelectorConfig,
SelectSelectorMode,
)
from homeassistant.helpers.typing import EventType
from .const import CONF_SENSOR_INDICES, CONF_SHOW_ON_MAP, DOMAIN, LOGGER
@ -420,7 +424,9 @@ class PurpleAirOptionsFlowHandler(config_entries.OptionsFlow):
device_entities_removed_event = asyncio.Event()
@callback
def async_device_entity_state_changed(_: Event) -> None:
def async_device_entity_state_changed(
_: EventType[EventStateChangedData],
) -> None:
"""Listen and respond when all device entities are removed."""
if all(
self.hass.states.get(entity_entry.entity_id) is None

View File

@ -17,9 +17,11 @@ from homeassistant.const import (
SERVICE_TURN_ON,
STATE_ON,
)
from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import EventStateChangedData
from homeassistant.helpers.typing import EventType
from .entity import BaseEntity
@ -74,7 +76,9 @@ class CoverSwitch(BaseEntity, CoverEntity):
)
@callback
def async_state_changed_listener(self, event: Event | None = None) -> None:
def async_state_changed_listener(
self, event: EventType[EventStateChangedData] | None = None
) -> None:
"""Handle child updates."""
super().async_state_changed_listener(event)
if (

View File

@ -12,7 +12,7 @@ from homeassistant.const import (
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.entity import DeviceInfo, Entity, ToggleEntity
from homeassistant.helpers.event import (
@ -67,7 +67,9 @@ class BaseEntity(Entity):
)
@callback
def async_state_changed_listener(self, event: Event | None = None) -> None:
def async_state_changed_listener(
self, event: EventType[EventStateChangedData] | None = None
) -> None:
"""Handle child updates."""
if (
state := self.hass.states.get(self._switch_entity_id)
@ -163,7 +165,9 @@ class BaseToggleEntity(BaseEntity, ToggleEntity):
)
@callback
def async_state_changed_listener(self, event: Event | None = None) -> None:
def async_state_changed_listener(
self, event: EventType[EventStateChangedData] | None = None
) -> None:
"""Handle child updates."""
super().async_state_changed_listener(event)
if (

View File

@ -13,9 +13,11 @@ from homeassistant.const import (
SERVICE_TURN_ON,
STATE_ON,
)
from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import EventStateChangedData
from homeassistant.helpers.typing import EventType
from .entity import BaseEntity
@ -68,7 +70,9 @@ class LockSwitch(BaseEntity, LockEntity):
)
@callback
def async_state_changed_listener(self, event: Event | None = None) -> None:
def async_state_changed_listener(
self, event: EventType[EventStateChangedData] | None = None
) -> None:
"""Handle child updates."""
super().async_state_changed_listener(event)
if (

View File

@ -26,7 +26,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_START,
STATE_UNKNOWN,
)
from homeassistant.core import Context, CoreState, Event, HomeAssistant, State, callback
from homeassistant.core import Context, CoreState, HomeAssistant, State, callback
from homeassistant.exceptions import TemplateError
from homeassistant.util.json import JSON_DECODE_EXCEPTIONS, json_loads
@ -131,7 +131,7 @@ class _TemplateAttribute:
@callback
def handle_result(
self,
event: Event | None,
event: EventType[EventStateChangedData] | None,
template: Template,
last_result: str | None | TemplateError,
result: str | TemplateError,

View File

@ -544,14 +544,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]):
def single_run_callback(event: EventType[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]):
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
old_state = event.data["old_state"]
new_state = event.data["new_state"]
@ -656,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]):
def single_run_callback(event: EventType[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]):
def multiple_run_callback(event: EventType[EventStateChangedData]) -> None:
old_state = event.data["old_state"]
new_state = event.data["new_state"]
@ -738,14 +738,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]):
def single_run_callback(event: EventType[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]):
def match_all_run_callback(event: EventType[EventStateChangedData]) -> None:
old_state = event.data["old_state"]
new_state = event.data["new_state"]