diff --git a/homeassistant/components/vasttrafik/sensor.py b/homeassistant/components/vasttrafik/sensor.py index 4c1c1de5e52..5e446106312 100644 --- a/homeassistant/components/vasttrafik/sensor.py +++ b/homeassistant/components/vasttrafik/sensor.py @@ -1,4 +1,6 @@ """Support for Västtrafik public transport.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -7,7 +9,10 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, CONF_DELAY, CONF_NAME +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 from homeassistant.util import Throttle from homeassistant.util.dt import now @@ -36,7 +41,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( { vol.Required(CONF_KEY): cv.string, vol.Required(CONF_SECRET): cv.string, - vol.Optional(CONF_DEPARTURES): [ + vol.Required(CONF_DEPARTURES): [ { vol.Required(CONF_FROM): cv.string, vol.Optional(CONF_DELAY, default=DEFAULT_DELAY): cv.positive_int, @@ -51,12 +56,17 @@ 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.""" planner = vasttrafik.JournyPlanner(config.get(CONF_KEY), config.get(CONF_SECRET)) sensors = [] - for departure in config.get(CONF_DEPARTURES): + for departure in config[CONF_DEPARTURES]: sensors.append( VasttrafikDepartureSensor( planner, diff --git a/homeassistant/components/waqi/sensor.py b/homeassistant/components/waqi/sensor.py index 331e689f14a..a4d4bac290b 100644 --- a/homeassistant/components/waqi/sensor.py +++ b/homeassistant/components/waqi/sensor.py @@ -1,4 +1,6 @@ """Support for the World Air Quality Index service.""" +from __future__ import annotations + import asyncio from datetime import timedelta import logging @@ -18,10 +20,13 @@ from homeassistant.const import ( ATTR_TIME, CONF_TOKEN, ) +from homeassistant.core import HomeAssistant from homeassistant.exceptions import PlatformNotReady from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv from homeassistant.helpers.config_validation import PLATFORM_SCHEMA +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType _LOGGER = logging.getLogger(__name__) @@ -66,12 +71,17 @@ 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 requested World Air Quality Index locations.""" - token = config.get(CONF_TOKEN) - station_filter = config.get(CONF_STATIONS) - locations = config.get(CONF_LOCATIONS) + token = config[CONF_TOKEN] + station_filter = config[CONF_STATIONS] + locations = config[CONF_LOCATIONS] client = WaqiClient(token, async_get_clientsession(hass), timeout=TIMEOUT) dev = [] diff --git a/homeassistant/components/waterfurnace/__init__.py b/homeassistant/components/waterfurnace/__init__.py index 9ae5836f69d..3d2faec8f39 100644 --- a/homeassistant/components/waterfurnace/__init__.py +++ b/homeassistant/components/waterfurnace/__init__.py @@ -8,8 +8,9 @@ import voluptuous as vol from waterfurnace.waterfurnace import WaterFurnace, WFCredentialError, WFException from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EVENT_HOMEASSISTANT_STOP -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import config_validation as cv, discovery +from homeassistant.helpers.typing import ConfigType _LOGGER = logging.getLogger(__name__) @@ -35,13 +36,13 @@ CONFIG_SCHEMA = vol.Schema( ) -def setup(hass, base_config): +def setup(hass: HomeAssistant, base_config: ConfigType) -> bool: """Set up waterfurnace platform.""" - config = base_config.get(DOMAIN) + config = base_config[DOMAIN] - username = config.get(CONF_USERNAME) - password = config.get(CONF_PASSWORD) + username = config[CONF_USERNAME] + password = config[CONF_PASSWORD] wfconn = WaterFurnace(username, password) # NOTE(sdague): login will throw an exception if this doesn't diff --git a/homeassistant/components/webhook/__init__.py b/homeassistant/components/webhook/__init__.py index 983ead616f2..c16d1b93015 100644 --- a/homeassistant/components/webhook/__init__.py +++ b/homeassistant/components/webhook/__init__.py @@ -13,6 +13,7 @@ from homeassistant.components import websocket_api from homeassistant.components.http.view import HomeAssistantView from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.network import get_url +from homeassistant.helpers.typing import ConfigType from homeassistant.loader import bind_hass from homeassistant.util.aiohttp import MockRequest @@ -110,7 +111,7 @@ async def async_handle_webhook(hass, webhook_id, request): return Response(status=HTTPStatus.OK) -async def async_setup(hass, config): +async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Initialize the webhook component.""" hass.http.register_view(WebhookView) hass.components.websocket_api.async_register_command( diff --git a/homeassistant/components/wirelesstag/binary_sensor.py b/homeassistant/components/wirelesstag/binary_sensor.py index da901f31cd6..dde1a22f622 100644 --- a/homeassistant/components/wirelesstag/binary_sensor.py +++ b/homeassistant/components/wirelesstag/binary_sensor.py @@ -1,11 +1,15 @@ """Binary sensor support for Wireless Sensor Tags.""" +from __future__ import annotations + import voluptuous as vol from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity from homeassistant.const import CONF_MONITORED_CONDITIONS, STATE_OFF, STATE_ON -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import ( DOMAIN as WIRELESSTAG_DOMAIN, @@ -68,15 +72,20 @@ 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 platform for a WirelessTags.""" - platform = hass.data.get(WIRELESSTAG_DOMAIN) + platform = hass.data[WIRELESSTAG_DOMAIN] sensors = [] tags = platform.tags for tag in tags.values(): allowed_sensor_types = tag.supported_binary_events_types - for sensor_type in config.get(CONF_MONITORED_CONDITIONS): + for sensor_type in config[CONF_MONITORED_CONDITIONS]: if sensor_type in allowed_sensor_types: sensors.append(WirelessTagBinarySensor(platform, tag, sensor_type)) diff --git a/homeassistant/components/wirelesstag/sensor.py b/homeassistant/components/wirelesstag/sensor.py index 5c7de69cc2a..9cec276f26a 100644 --- a/homeassistant/components/wirelesstag/sensor.py +++ b/homeassistant/components/wirelesstag/sensor.py @@ -13,9 +13,11 @@ from homeassistant.components.sensor import ( SensorStateClass, ) from homeassistant.const import CONF_MONITORED_CONDITIONS -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DOMAIN as WIRELESSTAG_DOMAIN, SIGNAL_TAG_UPDATE, WirelessTagBaseSensor @@ -66,9 +68,14 @@ 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 sensor platform.""" - platform = hass.data.get(WIRELESSTAG_DOMAIN) + platform = hass.data[WIRELESSTAG_DOMAIN] sensors = [] tags = platform.tags for tag in tags.values(): diff --git a/homeassistant/components/wirelesstag/switch.py b/homeassistant/components/wirelesstag/switch.py index ca5391fdf96..a6e4a85559c 100644 --- a/homeassistant/components/wirelesstag/switch.py +++ b/homeassistant/components/wirelesstag/switch.py @@ -9,7 +9,10 @@ from homeassistant.components.switch import ( SwitchEntityDescription, ) from homeassistant.const import CONF_MONITORED_CONDITIONS +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 from . import DOMAIN as WIRELESSTAG_DOMAIN, WirelessTagBaseSensor @@ -47,9 +50,14 @@ 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 switches for a Wireless Sensor Tags.""" - platform = hass.data.get(WIRELESSTAG_DOMAIN) + platform = hass.data[WIRELESSTAG_DOMAIN] tags = platform.load_tags() monitored_conditions = config[CONF_MONITORED_CONDITIONS] diff --git a/homeassistant/components/wolflink/sensor.py b/homeassistant/components/wolflink/sensor.py index e9ecf4c3e55..f1a94cbbe20 100644 --- a/homeassistant/components/wolflink/sensor.py +++ b/homeassistant/components/wolflink/sensor.py @@ -1,4 +1,6 @@ """The Wolf SmartSet sensors.""" +from __future__ import annotations + from wolf_smartset.models import ( HoursParameter, ListItemParameter, @@ -10,20 +12,27 @@ from wolf_smartset.models import ( ) from homeassistant.components.sensor import SensorDeviceClass, SensorEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import PRESSURE_BAR, TEMP_CELSIUS, TIME_HOURS +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import COORDINATOR, DEVICE_ID, DOMAIN, PARAMETERS, STATES -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 all entries for Wolf Platform.""" coordinator = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR] parameters = hass.data[DOMAIN][config_entry.entry_id][PARAMETERS] device_id = hass.data[DOMAIN][config_entry.entry_id][DEVICE_ID] - entities = [] + entities: list[WolfLinkSensor] = [] for parameter in parameters: if isinstance(parameter, Temperature): entities.append(WolfLinkTemperature(coordinator, parameter, device_id)) diff --git a/homeassistant/components/worldclock/sensor.py b/homeassistant/components/worldclock/sensor.py index 74da12f7f61..069ca5c55e7 100644 --- a/homeassistant/components/worldclock/sensor.py +++ b/homeassistant/components/worldclock/sensor.py @@ -1,9 +1,14 @@ """Support for showing the time in a different time zone.""" +from __future__ import annotations + import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import CONF_NAME, CONF_TIME_ZONE +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 CONF_TIME_FORMAT = "time_format" @@ -21,10 +26,15 @@ 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 World clock sensor.""" name = config.get(CONF_NAME) - time_zone = dt_util.get_time_zone(config.get(CONF_TIME_ZONE)) + time_zone = dt_util.get_time_zone(config[CONF_TIME_ZONE]) async_add_entities( [ diff --git a/homeassistant/components/wsdot/sensor.py b/homeassistant/components/wsdot/sensor.py index e0866f6f677..309b9a6a758 100644 --- a/homeassistant/components/wsdot/sensor.py +++ b/homeassistant/components/wsdot/sensor.py @@ -1,4 +1,6 @@ """Support for Washington State Department of Transportation (WSDOT) data.""" +from __future__ import annotations + from datetime import datetime, timedelta, timezone from http import HTTPStatus import logging @@ -16,7 +18,10 @@ from homeassistant.const import ( CONF_NAME, 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 _LOGGER = logging.getLogger(__name__) @@ -43,17 +48,22 @@ SCAN_INTERVAL = timedelta(minutes=3) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( { vol.Required(CONF_API_KEY): cv.string, - vol.Optional(CONF_TRAVEL_TIMES): [ + vol.Required(CONF_TRAVEL_TIMES): [ {vol.Required(CONF_ID): cv.string, vol.Optional(CONF_NAME): cv.string} ], } ) -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 WSDOT sensor.""" sensors = [] - for travel_time in config.get(CONF_TRAVEL_TIMES): + for travel_time in config[CONF_TRAVEL_TIMES]: name = travel_time.get(CONF_NAME) or travel_time.get(CONF_ID) sensors.append( WashingtonStateTravelTimeSensor(