diff --git a/homeassistant/components/nederlandse_spoorwegen/sensor.py b/homeassistant/components/nederlandse_spoorwegen/sensor.py index 8cbe7b1f803..84fd1f0569b 100644 --- a/homeassistant/components/nederlandse_spoorwegen/sensor.py +++ b/homeassistant/components/nederlandse_spoorwegen/sensor.py @@ -1,4 +1,6 @@ """Support for Nederlandse Spoorwegen public transport.""" +from __future__ import annotations + from datetime import datetime, timedelta import logging @@ -9,8 +11,11 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_NAME +from homeassistant.core import HomeAssistant from homeassistant.exceptions import PlatformNotReady import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import Throttle _LOGGER = logging.getLogger(__name__) @@ -44,7 +49,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( ) -def setup_platform(hass, config, add_entities, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the departure sensor.""" nsapi = ns_api.NSAPI(config[CONF_API_KEY]) @@ -62,7 +72,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): return sensors = [] - for departure in config.get(CONF_ROUTES): + for departure in config.get(CONF_ROUTES, {}): if not valid_stations( stations, [departure.get(CONF_FROM), departure.get(CONF_VIA), departure.get(CONF_TO)], diff --git a/homeassistant/components/netdata/sensor.py b/homeassistant/components/netdata/sensor.py index 3b1e9a0ed47..97007ec076f 100644 --- a/homeassistant/components/netdata/sensor.py +++ b/homeassistant/components/netdata/sensor.py @@ -1,4 +1,6 @@ """Support gathering system information of hosts which are running netdata.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -15,8 +17,11 @@ from homeassistant.const import ( CONF_RESOURCES, PERCENTAGE, ) +from homeassistant.core import HomeAssistant from homeassistant.exceptions import PlatformNotReady import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import Throttle _LOGGER = logging.getLogger(__name__) @@ -52,13 +57,18 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( ) -async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + config: ConfigType, + async_add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Netdata sensor.""" - name = config.get(CONF_NAME) - host = config.get(CONF_HOST) - port = config.get(CONF_PORT) - resources = config.get(CONF_RESOURCES) + name = config[CONF_NAME] + host = config[CONF_HOST] + port = config[CONF_PORT] + resources = config[CONF_RESOURCES] netdata = NetdataData(Netdata(host, port=port)) await netdata.async_update() @@ -66,7 +76,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= if netdata.api.metrics is None: raise PlatformNotReady - dev = [] + dev: list[SensorEntity] = [] for entry, data in resources.items(): icon = data[CONF_ICON] sensor = data[CONF_DATA_GROUP] diff --git a/homeassistant/components/netio/switch.py b/homeassistant/components/netio/switch.py index 88da77cbf90..2ce3fdf5d85 100644 --- a/homeassistant/components/netio/switch.py +++ b/homeassistant/components/netio/switch.py @@ -4,7 +4,6 @@ from __future__ import annotations from collections import namedtuple from datetime import timedelta import logging -from typing import Any from pynetio import Netio import voluptuous as vol @@ -20,8 +19,10 @@ from homeassistant.const import ( EVENT_HOMEASSISTANT_STOP, STATE_ON, ) -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType _LOGGER = logging.getLogger(__name__) @@ -33,7 +34,7 @@ CONF_OUTLETS = "outlets" DEFAULT_PORT = 1234 DEFAULT_USERNAME = "admin" Device = namedtuple("Device", ["netio", "entities"]) -DEVICES: dict[str, Any] = {} +DEVICES: dict[str, Device] = {} MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) @@ -52,13 +53,18 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( ) -def setup_platform(hass, config, add_entities, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Netio platform.""" - host = config.get(CONF_HOST) - username = config.get(CONF_USERNAME) - password = config.get(CONF_PASSWORD) - port = config.get(CONF_PORT) + host = config[CONF_HOST] + username = config[CONF_USERNAME] + password = config[CONF_PASSWORD] + port = config[CONF_PORT] if not DEVICES: hass.http.register_view(NetioApiView) @@ -77,7 +83,6 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(DEVICES[host].entities) hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, dispose) - return True def dispose(event): diff --git a/homeassistant/components/nexia/sensor.py b/homeassistant/components/nexia/sensor.py index 5ad5025fea3..39aeec8996c 100644 --- a/homeassistant/components/nexia/sensor.py +++ b/homeassistant/components/nexia/sensor.py @@ -1,9 +1,13 @@ """Support for Nexia / Trane XL Thermostats.""" +from __future__ import annotations from nexia.const import UNIT_CELSIUS from homeassistant.components.sensor import SensorDeviceClass, SensorEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN from .coordinator import NexiaDataUpdateCoordinator @@ -11,12 +15,16 @@ from .entity import NexiaThermostatEntity, NexiaThermostatZoneEntity from .util import percent_conv -async def async_setup_entry(hass, config_entry, async_add_entities): +async def async_setup_entry( + hass: HomeAssistant, + config_entry: ConfigEntry, + async_add_entities: AddEntitiesCallback, +) -> None: """Set up sensors for a Nexia device.""" coordinator: NexiaDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] nexia_home = coordinator.nexia_home - entities = [] + entities: list[NexiaThermostatEntity] = [] # Thermostat / System Sensors for thermostat_id in nexia_home.get_thermostat_ids(): diff --git a/homeassistant/components/nmbs/sensor.py b/homeassistant/components/nmbs/sensor.py index 72e51837bb8..00624748aba 100644 --- a/homeassistant/components/nmbs/sensor.py +++ b/homeassistant/components/nmbs/sensor.py @@ -1,4 +1,6 @@ """Get ride details and liveboard details for NMBS (Belgian railway).""" +from __future__ import annotations + import logging from pyrail import iRail @@ -13,7 +15,10 @@ from homeassistant.const import ( CONF_SHOW_ON_MAP, TIME_MINUTES, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType import homeassistant.util.dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -63,7 +68,12 @@ def get_ride_duration(departure_time, arrival_time, delay=0): return duration_time + get_delay_in_minutes(delay) -def setup_platform(hass, config, add_entities, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the NMBS sensor with iRail API.""" api_client = iRail() @@ -75,7 +85,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): station_live = config.get(CONF_STATION_LIVE) excl_vias = config[CONF_EXCLUDE_VIAS] - sensors = [ + sensors: list[SensorEntity] = [ NMBSSensor(api_client, name, show_on_map, station_from, station_to, excl_vias) ]