diff --git a/homeassistant/components/apache_kafka/__init__.py b/homeassistant/components/apache_kafka/__init__.py index f7abfcf66ef..fb29c0d5e49 100644 --- a/homeassistant/components/apache_kafka/__init__.py +++ b/homeassistant/components/apache_kafka/__init__.py @@ -133,7 +133,7 @@ class KafkaManager: async def start(self) -> None: """Start the Kafka manager.""" - self._hass.bus.async_listen(EVENT_STATE_CHANGED, self.write) # type: ignore[arg-type] + self._hass.bus.async_listen(EVENT_STATE_CHANGED, self.write) await self._producer.start() async def shutdown(self, _: Event) -> None: diff --git a/homeassistant/components/api/__init__.py b/homeassistant/components/api/__init__.py index c4543b55514..a427957de15 100644 --- a/homeassistant/components/api/__init__.py +++ b/homeassistant/components/api/__init__.py @@ -397,7 +397,7 @@ class APIDomainServicesView(HomeAssistantView): cancel_listen = hass.bus.async_listen( EVENT_STATE_CHANGED, - _async_save_changed_entities, # type: ignore[arg-type] + _async_save_changed_entities, run_immediately=True, ) diff --git a/homeassistant/components/conversation/default_agent.py b/homeassistant/components/conversation/default_agent.py index 4ca5c85676e..b07919c9d5c 100644 --- a/homeassistant/components/conversation/default_agent.py +++ b/homeassistant/components/conversation/default_agent.py @@ -161,17 +161,17 @@ class DefaultAgent(AbstractConversationAgent): self.hass.bus.async_listen( ar.EVENT_AREA_REGISTRY_UPDATED, - self._async_handle_area_registry_changed, # type: ignore[arg-type] + self._async_handle_area_registry_changed, run_immediately=True, ) self.hass.bus.async_listen( er.EVENT_ENTITY_REGISTRY_UPDATED, - self._async_handle_entity_registry_changed, # type: ignore[arg-type] + self._async_handle_entity_registry_changed, run_immediately=True, ) self.hass.bus.async_listen( EVENT_STATE_CHANGED, - self._async_handle_state_changed, # type: ignore[arg-type] + self._async_handle_state_changed, run_immediately=True, ) async_listen_entity_updates( diff --git a/homeassistant/components/logbook/helpers.py b/homeassistant/components/logbook/helpers.py index 4f534c74981..e3288452fb7 100644 --- a/homeassistant/components/logbook/helpers.py +++ b/homeassistant/components/logbook/helpers.py @@ -211,7 +211,7 @@ def async_subscribe_events( subscriptions.append( hass.bus.async_listen( EVENT_STATE_CHANGED, - _forward_state_events_filtered, # type: ignore[arg-type] + _forward_state_events_filtered, run_immediately=True, ) ) diff --git a/homeassistant/components/prometheus/__init__.py b/homeassistant/components/prometheus/__init__.py index 22b6bdaa78f..d3a307a6616 100644 --- a/homeassistant/components/prometheus/__init__.py +++ b/homeassistant/components/prometheus/__init__.py @@ -132,10 +132,10 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool: default_metric, ) - hass.bus.listen(EVENT_STATE_CHANGED, metrics.handle_state_changed_event) # type: ignore[arg-type] + hass.bus.listen(EVENT_STATE_CHANGED, metrics.handle_state_changed_event) hass.bus.listen( EVENT_ENTITY_REGISTRY_UPDATED, - metrics.handle_entity_registry_updated, # type: ignore[arg-type] + metrics.handle_entity_registry_updated, ) for state in hass.states.all(): diff --git a/homeassistant/core.py b/homeassistant/core.py index a44f8d894ca..a386f4725fe 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -1406,7 +1406,7 @@ class EventBus: def listen( self, event_type: str, - listener: Callable[[Event], Coroutine[Any, Any, None] | None], + listener: Callable[[Event[Any]], Coroutine[Any, Any, None] | None], ) -> CALLBACK_TYPE: """Listen for all events or events of a specific type. @@ -1427,8 +1427,8 @@ class EventBus: def async_listen( self, event_type: str, - listener: Callable[[Event], Coroutine[Any, Any, None] | None], - event_filter: Callable[[Event], bool] | None = None, + listener: Callable[[Event[_DataT]], Coroutine[Any, Any, None] | None], + event_filter: Callable[[Event[_DataT]], bool] | None = None, run_immediately: bool = False, ) -> CALLBACK_TYPE: """Listen for all events or events of a specific type. @@ -1464,7 +1464,7 @@ class EventBus: @callback def _async_listen_filterable_job( - self, event_type: str, filterable_job: _FilterableJobType + self, event_type: str, filterable_job: _FilterableJobType[Any] ) -> CALLBACK_TYPE: self._listeners.setdefault(event_type, []).append(filterable_job) return functools.partial( @@ -1474,7 +1474,7 @@ class EventBus: def listen_once( self, event_type: str, - listener: Callable[[Event], Coroutine[Any, Any, None] | None], + listener: Callable[[Event[Any]], Coroutine[Any, Any, None] | None], ) -> CALLBACK_TYPE: """Listen once for event of a specific type. @@ -1497,7 +1497,7 @@ class EventBus: def async_listen_once( self, event_type: str, - listener: Callable[[Event], Coroutine[Any, Any, None] | None], + listener: Callable[[Event[Any]], Coroutine[Any, Any, None] | None], ) -> CALLBACK_TYPE: """Listen once for event of a specific type. diff --git a/homeassistant/helpers/area_registry.py b/homeassistant/helpers/area_registry.py index f9f4abc6468..5a14eb3ad16 100644 --- a/homeassistant/helpers/area_registry.py +++ b/homeassistant/helpers/area_registry.py @@ -329,8 +329,8 @@ class AreaRegistry(BaseRegistry): self.hass.bus.async_listen( event_type=fr.EVENT_FLOOR_REGISTRY_UPDATED, - event_filter=_removed_from_registry_filter, # type: ignore[arg-type] - listener=_handle_floor_registry_update, # type: ignore[arg-type] + event_filter=_removed_from_registry_filter, + listener=_handle_floor_registry_update, ) @callback @@ -345,8 +345,8 @@ class AreaRegistry(BaseRegistry): self.hass.bus.async_listen( event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, - event_filter=_removed_from_registry_filter, # type: ignore[arg-type] - listener=_handle_label_registry_update, # type: ignore[arg-type] + event_filter=_removed_from_registry_filter, + listener=_handle_label_registry_update, ) diff --git a/homeassistant/helpers/device_registry.py b/homeassistant/helpers/device_registry.py index 85d0e8f9966..e823f356f4e 100644 --- a/homeassistant/helpers/device_registry.py +++ b/homeassistant/helpers/device_registry.py @@ -1141,8 +1141,8 @@ def async_setup_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry) -> None: hass.bus.async_listen( event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, - event_filter=_label_removed_from_registry_filter, # type: ignore[arg-type] - listener=_handle_label_registry_update, # type: ignore[arg-type] + event_filter=_label_removed_from_registry_filter, + listener=_handle_label_registry_update, ) @callback diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index 49dfde913e4..84d1bd43e2e 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -1380,8 +1380,8 @@ def _async_setup_cleanup(hass: HomeAssistant, registry: EntityRegistry) -> None: hass.bus.async_listen( event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, - event_filter=_label_removed_from_registry_filter, # type: ignore[arg-type] - listener=_handle_label_registry_update, # type: ignore[arg-type] + event_filter=_label_removed_from_registry_filter, + listener=_handle_label_registry_update, ) @callback diff --git a/homeassistant/helpers/event.py b/homeassistant/helpers/event.py index 4fd2949a23b..15b8b083ba6 100644 --- a/homeassistant/helpers/event.py +++ b/homeassistant/helpers/event.py @@ -287,9 +287,7 @@ def async_track_state_change( return async_track_state_change_event(hass, entity_ids, state_change_listener) return hass.bus.async_listen( - EVENT_STATE_CHANGED, - state_change_dispatcher, # type: ignore[arg-type] - event_filter=state_change_filter, # type: ignore[arg-type] + EVENT_STATE_CHANGED, state_change_dispatcher, event_filter=state_change_filter ) @@ -806,8 +804,7 @@ class _TrackStateChangeFiltered: @callback def _setup_all_listener(self) -> None: self._listeners[_ALL_LISTENER] = self.hass.bus.async_listen( - EVENT_STATE_CHANGED, - self._action, # type: ignore[arg-type] + EVENT_STATE_CHANGED, self._action ) @@ -1387,8 +1384,7 @@ def async_track_same_state( if entity_ids == MATCH_ALL: async_remove_state_for_cancel = hass.bus.async_listen( - EVENT_STATE_CHANGED, - state_for_cancel_listener, # type: ignore[arg-type] + EVENT_STATE_CHANGED, state_for_cancel_listener ) else: async_remove_state_for_cancel = async_track_state_change_event( diff --git a/homeassistant/setup.py b/homeassistant/setup.py index 4b920bf364b..186d5d6b75c 100644 --- a/homeassistant/setup.py +++ b/homeassistant/setup.py @@ -585,7 +585,7 @@ def _async_when_setup( listeners: list[CALLBACK_TYPE] = [] - async def _matched_event(event: Event) -> None: + async def _matched_event(event: Event[Any]) -> None: """Call the callback when we matched an event.""" for listener in listeners: listener() @@ -600,7 +600,7 @@ def _async_when_setup( hass.bus.async_listen( EVENT_COMPONENT_LOADED, _matched_event, - event_filter=_async_is_component_filter, # type: ignore[arg-type] + event_filter=_async_is_component_filter, ) ) if start_event: