diff --git a/homeassistant/components/tank_utility/sensor.py b/homeassistant/components/tank_utility/sensor.py index 2ffff492b92..1e10eee6841 100644 --- a/homeassistant/components/tank_utility/sensor.py +++ b/homeassistant/components/tank_utility/sensor.py @@ -1,4 +1,5 @@ """Support for the Tank Utility propane monitor.""" +from __future__ import annotations import datetime import logging @@ -9,7 +10,10 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import CONF_DEVICES, CONF_EMAIL, CONF_PASSWORD, PERCENTAGE +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__) @@ -37,12 +41,17 @@ SENSOR_ATTRS = [ ] -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 Tank Utility sensor.""" - email = config.get(CONF_EMAIL) - password = config.get(CONF_PASSWORD) - devices = config.get(CONF_DEVICES) + email = config[CONF_EMAIL] + password = config[CONF_PASSWORD] + devices = config[CONF_DEVICES] try: token = auth.get_token(email, password) diff --git a/homeassistant/components/thethingsnetwork/sensor.py b/homeassistant/components/thethingsnetwork/sensor.py index 2431d1e2022..d6a029a3604 100644 --- a/homeassistant/components/thethingsnetwork/sensor.py +++ b/homeassistant/components/thethingsnetwork/sensor.py @@ -1,4 +1,6 @@ """Support for The Things Network's Data storage integration.""" +from __future__ import annotations + import asyncio from http import HTTPStatus import logging @@ -15,8 +17,11 @@ from homeassistant.const import ( CONF_DEVICE_ID, CONTENT_TYPE_JSON, ) +from homeassistant.core import HomeAssistant from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DATA_TTN, TTN_ACCESS_KEY, TTN_APP_ID, TTN_DATA_STORAGE_URL @@ -35,11 +40,16 @@ 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 Things Network Data storage sensors.""" - ttn = hass.data.get(DATA_TTN) - device_id = config.get(CONF_DEVICE_ID) - values = config.get(CONF_VALUES) + ttn = hass.data[DATA_TTN] + device_id = config[CONF_DEVICE_ID] + values = config[CONF_VALUES] app_id = ttn.get(TTN_APP_ID) access_key = ttn.get(TTN_ACCESS_KEY) diff --git a/homeassistant/components/tibber/__init__.py b/homeassistant/components/tibber/__init__.py index 00d8d4aa3a2..07752a264c3 100644 --- a/homeassistant/components/tibber/__init__.py +++ b/homeassistant/components/tibber/__init__.py @@ -74,12 +74,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return True -async def async_unload_entry(hass, config_entry): +async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: """Unload a config entry.""" unload_ok = await hass.config_entries.async_unload_platforms( config_entry, PLATFORMS ) if unload_ok: - tibber_connection = hass.data.get(DOMAIN) + tibber_connection = hass.data[DOMAIN] await tibber_connection.rt_disconnect() return unload_ok diff --git a/homeassistant/components/tibber/sensor.py b/homeassistant/components/tibber/sensor.py index bd853e10a21..602a6b9277a 100644 --- a/homeassistant/components/tibber/sensor.py +++ b/homeassistant/components/tibber/sensor.py @@ -20,6 +20,7 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( ELECTRIC_CURRENT_AMPERE, ELECTRIC_POTENTIAL_VOLT, @@ -29,11 +30,12 @@ from homeassistant.const import ( POWER_WATT, SIGNAL_STRENGTH_DECIBELS, ) -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import PlatformNotReady from homeassistant.helpers import update_coordinator from homeassistant.helpers.device_registry import async_get as async_get_dev_reg from homeassistant.helpers.entity import DeviceInfo, EntityCategory +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_registry import async_get as async_get_entity_reg from homeassistant.util import Throttle, dt as dt_util @@ -227,16 +229,18 @@ SENSORS: tuple[SensorEntityDescription, ...] = ( ) -async def async_setup_entry(hass, entry, async_add_entities): +async def async_setup_entry( + hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback +) -> None: """Set up the Tibber sensor.""" - tibber_connection = hass.data.get(TIBBER_DOMAIN) + tibber_connection = hass.data[TIBBER_DOMAIN] entity_registry = async_get_entity_reg(hass) device_registry = async_get_dev_reg(hass) - coordinator = None - entities = [] + coordinator: update_coordinator.DataUpdateCoordinator | None = None + entities: list[TibberSensor] = [] for home in tibber_connection.get_homes(only_active=False): try: await home.update_info() diff --git a/homeassistant/components/tmb/sensor.py b/homeassistant/components/tmb/sensor.py index d777fec38b6..dafcf909399 100644 --- a/homeassistant/components/tmb/sensor.py +++ b/homeassistant/components/tmb/sensor.py @@ -1,4 +1,6 @@ """Support for TMB (Transports Metropolitans de Barcelona) Barcelona public transport.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -8,7 +10,10 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, 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 from homeassistant.util import Throttle _LOGGER = logging.getLogger(__name__) @@ -44,13 +49,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 sensors.""" ibus_client = IBus(config[CONF_APP_ID], config[CONF_APP_KEY]) sensors = [] - for line_stop in config.get(CONF_BUS_STOPS): + for line_stop in config[CONF_BUS_STOPS]: line = line_stop[CONF_LINE] stop = line_stop[CONF_BUS_STOP] if line_stop.get(CONF_NAME): diff --git a/homeassistant/components/torque/sensor.py b/homeassistant/components/torque/sensor.py index 162dd5f437c..a2e1e35d2ae 100644 --- a/homeassistant/components/torque/sensor.py +++ b/homeassistant/components/torque/sensor.py @@ -1,4 +1,6 @@ """Support for the Torque OBD application.""" +from __future__ import annotations + import re import voluptuous as vol @@ -6,8 +8,10 @@ import voluptuous as vol from homeassistant.components.http import HomeAssistantView from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import CONF_EMAIL, CONF_NAME, DEGREE -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 API_PATH = "/api/torque" @@ -38,16 +42,20 @@ def convert_pid(value): return int(value, 16) -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 Torque platform.""" vehicle = config.get(CONF_NAME) email = config.get(CONF_EMAIL) - sensors = {} + sensors: dict[int, TorqueSensor] = {} hass.http.register_view( TorqueReceiveDataView(email, vehicle, sensors, add_entities) ) - return True class TorqueReceiveDataView(HomeAssistantView): diff --git a/homeassistant/components/uk_transport/sensor.py b/homeassistant/components/uk_transport/sensor.py index 567a6093c44..f3c7c5d84a0 100644 --- a/homeassistant/components/uk_transport/sensor.py +++ b/homeassistant/components/uk_transport/sensor.py @@ -1,4 +1,6 @@ """Support for UK public transport data provided by transportapi.com.""" +from __future__ import annotations + from datetime import datetime, timedelta from http import HTTPStatus import logging @@ -9,7 +11,10 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import CONF_MODE, 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 from homeassistant.util import Throttle import homeassistant.util.dt as dt_util @@ -47,20 +52,28 @@ 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: """Get the uk_transport sensor.""" - sensors = [] - number_sensors = len(config.get(CONF_QUERIES)) + sensors: list[UkTransportSensor] = [] + number_sensors = len(queries := config[CONF_QUERIES]) interval = timedelta(seconds=87 * number_sensors) - for query in config.get(CONF_QUERIES): + api_app_id = config[CONF_API_APP_ID] + api_app_key = config[CONF_API_APP_KEY] + + for query in queries: if "bus" in query.get(CONF_MODE): stop_atcocode = query.get(CONF_ORIGIN) bus_direction = query.get(CONF_DESTINATION) sensors.append( UkTransportLiveBusTimeSensor( - config.get(CONF_API_APP_ID), - config.get(CONF_API_APP_KEY), + api_app_id, + api_app_key, stop_atcocode, bus_direction, interval, @@ -72,8 +85,8 @@ def setup_platform(hass, config, add_entities, discovery_info=None): calling_at = query.get(CONF_DESTINATION) sensors.append( UkTransportLiveTrainTimeSensor( - config.get(CONF_API_APP_ID), - config.get(CONF_API_APP_KEY), + api_app_id, + api_app_key, station_code, calling_at, interval,