From 3e8b2954843ee978d356e01ae5976528c74e54dc Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 14:29:55 +0000 Subject: [PATCH] Add type hints to setup_scanner --- .../components/aprs/device_tracker.py | 22 +++++++++++++------ .../components/demo/device_tracker.py | 11 ++++++++-- .../components/fleetgo/device_tracker.py | 14 +++++++++--- .../components/google_maps/device_tracker.py | 14 ++++++++---- .../components/life360/device_tracker.py | 13 +++++++++-- 5 files changed, 56 insertions(+), 18 deletions(-) diff --git a/homeassistant/components/aprs/device_tracker.py b/homeassistant/components/aprs/device_tracker.py index f86a5a4648d..fe52e70f3be 100644 --- a/homeassistant/components/aprs/device_tracker.py +++ b/homeassistant/components/aprs/device_tracker.py @@ -1,5 +1,7 @@ """Support for APRS device tracking.""" +from __future__ import annotations +from collections.abc import Callable import logging import threading @@ -21,7 +23,9 @@ from homeassistant.const import ( CONF_USERNAME, EVENT_HOMEASSISTANT_STOP, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import slugify DOMAIN = "aprs" @@ -80,15 +84,20 @@ def gps_accuracy(gps, posambiguity: int) -> int: return accuracy -def setup_scanner(hass, config, see, discovery_info=None): +def setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., None], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the APRS tracker.""" - callsigns = config.get(CONF_CALLSIGNS) + callsigns = config[CONF_CALLSIGNS] server_filter = make_filter(callsigns) - callsign = config.get(CONF_USERNAME) - password = config.get(CONF_PASSWORD) - host = config.get(CONF_HOST) - timeout = config.get(CONF_TIMEOUT) + callsign = config[CONF_USERNAME] + password = config[CONF_PASSWORD] + host = config[CONF_HOST] + timeout = config[CONF_TIMEOUT] aprs_listener = AprsListenerThread(callsign, password, host, server_filter, see) def aprs_disconnect(event): @@ -107,7 +116,6 @@ def setup_scanner(hass, config, see, discovery_info=None): return _LOGGER.debug(aprs_listener.start_message) - return True class AprsListenerThread(threading.Thread): diff --git a/homeassistant/components/demo/device_tracker.py b/homeassistant/components/demo/device_tracker.py index 275133b21e5..72a4c01a461 100644 --- a/homeassistant/components/demo/device_tracker.py +++ b/homeassistant/components/demo/device_tracker.py @@ -1,14 +1,21 @@ """Demo platform for the Device tracker component.""" from __future__ import annotations +from collections.abc import Callable import random -from homeassistant.core import ServiceCall +from homeassistant.core import HomeAssistant, ServiceCall +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import DOMAIN, SERVICE_RANDOMIZE_DEVICE_TRACKER_DATA -def setup_scanner(hass, config, see, discovery_info=None): +def setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., None], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the demo tracker.""" def offset(): diff --git a/homeassistant/components/fleetgo/device_tracker.py b/homeassistant/components/fleetgo/device_tracker.py index 688531c11f1..f06b0873f75 100644 --- a/homeassistant/components/fleetgo/device_tracker.py +++ b/homeassistant/components/fleetgo/device_tracker.py @@ -1,4 +1,7 @@ """Support for FleetGO Platform.""" +from __future__ import annotations + +from collections.abc import Callable import logging import requests @@ -15,8 +18,10 @@ from homeassistant.const import ( CONF_PASSWORD, CONF_USERNAME, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.event import track_utc_time_change +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType _LOGGER = logging.getLogger(__name__) @@ -31,13 +36,16 @@ PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend( ) -def setup_scanner(hass, config: dict, see, discovery_info=None): +def setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., None], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the DeviceScanner and check if login is valid.""" scanner = FleetGoDeviceScanner(config, see) if not scanner.login(hass): _LOGGER.error("FleetGO authentication failed") - return False - return True class FleetGoDeviceScanner: diff --git a/homeassistant/components/google_maps/device_tracker.py b/homeassistant/components/google_maps/device_tracker.py index 1a0396a69ac..4b6e75d6211 100644 --- a/homeassistant/components/google_maps/device_tracker.py +++ b/homeassistant/components/google_maps/device_tracker.py @@ -1,6 +1,7 @@ """Support for Google Maps location sharing.""" from __future__ import annotations +from collections.abc import Callable from datetime import timedelta import logging @@ -19,9 +20,10 @@ from homeassistant.const import ( CONF_SCAN_INTERVAL, CONF_USERNAME, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.event import track_time_interval -from homeassistant.helpers.typing import ConfigType +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import dt as dt_util, slugify _LOGGER = logging.getLogger(__name__) @@ -45,10 +47,14 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA_BASE.extend( ) -def setup_scanner(hass, config: ConfigType, see, discovery_info=None): +def setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., None], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Google Maps Location sharing scanner.""" - scanner = GoogleMapsScanner(hass, config, see) - return scanner.success_init + GoogleMapsScanner(hass, config, see) class GoogleMapsScanner: diff --git a/homeassistant/components/life360/device_tracker.py b/homeassistant/components/life360/device_tracker.py index f293ab2aca3..27b7bfe13c6 100644 --- a/homeassistant/components/life360/device_tracker.py +++ b/homeassistant/components/life360/device_tracker.py @@ -1,4 +1,7 @@ """Support for Life360 device tracking.""" +from __future__ import annotations + +from collections.abc import Callable from datetime import timedelta import logging @@ -20,8 +23,10 @@ from homeassistant.const import ( LENGTH_MILES, STATE_UNKNOWN, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.event import track_time_interval +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util.async_ import run_callback_threadsafe from homeassistant.util.distance import convert import homeassistant.util.dt as dt_util @@ -86,12 +91,16 @@ def _dump_filter(filter_dict, desc, func=lambda x: x): ) -def setup_scanner(hass, config, see, discovery_info=None): +def setup_scanner( + hass: HomeAssistant, + config: ConfigType, + see: Callable[..., None], + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up device scanner.""" config = hass.data[DOMAIN]["config"] apis = hass.data[DOMAIN]["apis"] Life360Scanner(hass, config, see, apis) - return True def _utc_from_ts(val):