diff --git a/homeassistant/components/icloud/device_tracker.py b/homeassistant/components/icloud/device_tracker.py index 8e7630db1c6..7547f843557 100644 --- a/homeassistant/components/icloud/device_tracker.py +++ b/homeassistant/components/icloud/device_tracker.py @@ -1,6 +1,7 @@ """Support for tracking for iCloud devices.""" from __future__ import annotations +from collections.abc import Awaitable, Callable from typing import Any from homeassistant.components.device_tracker import SOURCE_TYPE_GPS @@ -10,6 +11,7 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .account import IcloudAccount, IcloudDevice from .const import ( @@ -20,7 +22,12 @@ from .const import ( ) -async def async_setup_scanner(hass: HomeAssistant, config, see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Old way of setting up the iCloud tracker.""" diff --git a/homeassistant/components/meraki/device_tracker.py b/homeassistant/components/meraki/device_tracker.py index 28953a47213..c284df00667 100644 --- a/homeassistant/components/meraki/device_tracker.py +++ b/homeassistant/components/meraki/device_tracker.py @@ -1,4 +1,7 @@ """Support for the Meraki CMX location service.""" +from __future__ import annotations + +from collections.abc import Awaitable, Callable from http import HTTPStatus import json import logging @@ -10,8 +13,9 @@ from homeassistant.components.device_tracker import ( SOURCE_TYPE_ROUTER, ) from homeassistant.components.http import HomeAssistantView -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType CONF_VALIDATOR = "validator" CONF_SECRET = "secret" @@ -27,12 +31,15 @@ PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend( ) -async def async_setup_scanner(hass, config, async_see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + async_see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up an endpoint for the Meraki tracker.""" hass.http.register_view(MerakiView(config, async_see)) - return True - class MerakiView(HomeAssistantView): """View to handle Meraki requests.""" diff --git a/homeassistant/components/mqtt_json/device_tracker.py b/homeassistant/components/mqtt_json/device_tracker.py index 2d14001b61b..b04d52082b5 100644 --- a/homeassistant/components/mqtt_json/device_tracker.py +++ b/homeassistant/components/mqtt_json/device_tracker.py @@ -1,4 +1,7 @@ """Support for GPS tracking MQTT enabled devices.""" +from __future__ import annotations + +from collections.abc import Awaitable, Callable import json import logging @@ -16,8 +19,9 @@ from homeassistant.const import ( ATTR_LONGITUDE, CONF_DEVICES, ) -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType _LOGGER = logging.getLogger(__name__) @@ -36,7 +40,12 @@ PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend(mqtt.SCHEMA_BASE).extend( ) -async def async_setup_scanner(hass, config, async_see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + async_see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the MQTT JSON tracker.""" devices = config[CONF_DEVICES] qos = config[CONF_QOS] @@ -64,8 +73,6 @@ async def async_setup_scanner(hass, config, async_see, discovery_info=None): await mqtt.async_subscribe(hass, topic, async_message_received, qos) - return True - def _parse_see_args(dev_id, data): """Parse the payload location parameters, into the format see expects.""" diff --git a/homeassistant/components/ping/device_tracker.py b/homeassistant/components/ping/device_tracker.py index 9fc149b5a1f..dd21bdfe71c 100644 --- a/homeassistant/components/ping/device_tracker.py +++ b/homeassistant/components/ping/device_tracker.py @@ -1,5 +1,8 @@ """Tracks devices by sending a ICMP echo request (ping).""" +from __future__ import annotations + import asyncio +from collections.abc import Awaitable, Callable from datetime import timedelta import logging import subprocess @@ -15,8 +18,10 @@ from homeassistant.components.device_tracker.const import ( SCAN_INTERVAL, SOURCE_TYPE_ROUTER, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.event import async_track_point_in_utc_time +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util.async_ import gather_with_concurrency from homeassistant.util.process import kill_subprocess @@ -77,7 +82,12 @@ class HostSubProcess: return False -async def async_setup_scanner(hass, config, async_see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + async_see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Host objects and return the update function.""" privileged = hass.data[DOMAIN][PING_PRIVS] diff --git a/homeassistant/components/traccar/device_tracker.py b/homeassistant/components/traccar/device_tracker.py index 7a0e3c61adb..324886b854d 100644 --- a/homeassistant/components/traccar/device_tracker.py +++ b/homeassistant/components/traccar/device_tracker.py @@ -1,4 +1,7 @@ """Support for Traccar device tracking.""" +from __future__ import annotations + +from collections.abc import Awaitable, Callable from datetime import datetime, timedelta import logging @@ -31,6 +34,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.restore_state import RestoreEntity +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import slugify from . import DOMAIN, TRACKER_UPDATE @@ -159,7 +163,12 @@ async def async_setup_entry( async_add_entities(entities) -async def async_setup_scanner(hass, config, async_see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + async_see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Validate the configuration and return a Traccar scanner.""" session = async_get_clientsession(hass, config[CONF_VERIFY_SSL]) diff --git a/homeassistant/components/volvooncall/device_tracker.py b/homeassistant/components/volvooncall/device_tracker.py index 15615c9d807..fb0ad1de5af 100644 --- a/homeassistant/components/volvooncall/device_tracker.py +++ b/homeassistant/components/volvooncall/device_tracker.py @@ -1,12 +1,23 @@ """Support for tracking a Volvo.""" +from __future__ import annotations + +from collections.abc import Awaitable, Callable + from homeassistant.components.device_tracker import SOURCE_TYPE_GPS +from homeassistant.core import HomeAssistant from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import slugify from . import DATA_KEY, SIGNAL_STATE_UPDATED -async def async_setup_scanner(hass, config, async_see, discovery_info=None): +async def async_setup_scanner( + hass: HomeAssistant, + config: ConfigType, + async_see: Callable[..., Awaitable[None]], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Volvo tracker.""" if discovery_info is None: return @@ -28,5 +39,3 @@ async def async_setup_scanner(hass, config, async_see, discovery_info=None): ) async_dispatcher_connect(hass, SIGNAL_STATE_UPDATED, see_vehicle) - - return True