From 822ac203c3d4fcbd20ff4b764f828acd03d28399 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 3 Jan 2022 19:08:34 +0100 Subject: [PATCH] Add sensor setup type hints [r] (#63312) Co-authored-by: epenet --- homeassistant/components/radarr/sensor.py | 10 +++++++++- homeassistant/components/rainbird/sensor.py | 12 +++++++++++- homeassistant/components/random/sensor.py | 12 +++++++++++- homeassistant/components/reddit/sensor.py | 12 +++++++++++- homeassistant/components/rejseplanen/sensor.py | 12 +++++++++++- homeassistant/components/rest/sensor.py | 12 +++++++++++- homeassistant/components/rflink/sensor.py | 12 +++++++++++- homeassistant/components/ring/sensor.py | 10 ++++++++-- homeassistant/components/ripple/sensor.py | 12 +++++++++++- homeassistant/components/risco/sensor.py | 9 ++++++++- homeassistant/components/roomba/sensor.py | 9 ++++++++- homeassistant/components/rova/sensor.py | 10 +++++++++- homeassistant/components/rtorrent/sensor.py | 10 +++++++++- 13 files changed, 128 insertions(+), 14 deletions(-) diff --git a/homeassistant/components/radarr/sensor.py b/homeassistant/components/radarr/sensor.py index 96c0d2b905db..024431803581 100644 --- a/homeassistant/components/radarr/sensor.py +++ b/homeassistant/components/radarr/sensor.py @@ -31,7 +31,10 @@ from homeassistant.const import ( DATA_YOTTABYTES, DATA_ZETTABYTES, ) +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 dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -127,7 +130,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 Radarr platform.""" conditions = config[CONF_MONITORED_CONDITIONS] entities = [ diff --git a/homeassistant/components/rainbird/sensor.py b/homeassistant/components/rainbird/sensor.py index 0f6ad41b4e34..a3e431418f80 100644 --- a/homeassistant/components/rainbird/sensor.py +++ b/homeassistant/components/rainbird/sensor.py @@ -1,9 +1,14 @@ """Support for Rain Bird Irrigation system LNK WiFi Module.""" +from __future__ import annotations + import logging from pyrainbird import RainbirdController from homeassistant.components.sensor import SensorEntity, SensorEntityDescription +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import ( DATA_RAINBIRD, @@ -16,7 +21,12 @@ from . import ( _LOGGER = logging.getLogger(__name__) -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 a Rain Bird sensor.""" if discovery_info is None: diff --git a/homeassistant/components/random/sensor.py b/homeassistant/components/random/sensor.py index 91a34639de1f..a877f5cf0a35 100644 --- a/homeassistant/components/random/sensor.py +++ b/homeassistant/components/random/sensor.py @@ -1,4 +1,6 @@ """Support for showing random numbers.""" +from __future__ import annotations + from random import randrange import voluptuous as vol @@ -10,7 +12,10 @@ from homeassistant.const import ( CONF_NAME, CONF_UNIT_OF_MEASUREMENT, ) +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 ATTR_MAXIMUM = "maximum" ATTR_MINIMUM = "minimum" @@ -31,7 +36,12 @@ 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 Random number sensor.""" name = config.get(CONF_NAME) minimum = config.get(CONF_MINIMUM) diff --git a/homeassistant/components/reddit/sensor.py b/homeassistant/components/reddit/sensor.py index 2e1ec5dc18a0..0f4638634cec 100644 --- a/homeassistant/components/reddit/sensor.py +++ b/homeassistant/components/reddit/sensor.py @@ -1,4 +1,6 @@ """Support for Reddit.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -14,7 +16,10 @@ from homeassistant.const import ( CONF_PASSWORD, CONF_USERNAME, ) +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__) @@ -53,7 +58,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 Reddit sensor platform.""" subreddits = config[CONF_SUBREDDITS] user_agent = f"{config[CONF_USERNAME]}_home_assistant_sensor" diff --git a/homeassistant/components/rejseplanen/sensor.py b/homeassistant/components/rejseplanen/sensor.py index 99e2f90c879f..a6251bf62e70 100644 --- a/homeassistant/components/rejseplanen/sensor.py +++ b/homeassistant/components/rejseplanen/sensor.py @@ -4,6 +4,8 @@ Support for Rejseplanen information from rejseplanen.dk. For more info on the API see: https://help.rejseplanen.dk/hc/en-us/articles/214174465-Rejseplanen-s-API """ +from __future__ import annotations + from contextlib import suppress from datetime import datetime, timedelta import logging @@ -14,7 +16,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 import homeassistant.util.dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -73,7 +78,12 @@ def due_in_minutes(timestamp): return int(diff.total_seconds() // 60) -def setup_platform(hass, config, add_devices, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_devices: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Rejseplanen transport sensor.""" name = config[CONF_NAME] stop_id = config[CONF_STOP_ID] diff --git a/homeassistant/components/rest/sensor.py b/homeassistant/components/rest/sensor.py index f18fcc8287f3..73d65abda7e2 100644 --- a/homeassistant/components/rest/sensor.py +++ b/homeassistant/components/rest/sensor.py @@ -1,4 +1,6 @@ """Support for RESTful API sensors.""" +from __future__ import annotations + import json import logging from xml.parsers.expat import ExpatError @@ -24,8 +26,11 @@ from homeassistant.const import ( CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE, ) +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 . import async_get_config_and_coordinator, create_rest_data_from_config from .const import CONF_JSON_ATTRS, CONF_JSON_ATTRS_PATH @@ -41,7 +46,12 @@ PLATFORM_SCHEMA = vol.All( ) -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 RESTful sensor.""" # Must update the sensor now (including fetching the rest resource) to # ensure it's updating its state. diff --git a/homeassistant/components/rflink/sensor.py b/homeassistant/components/rflink/sensor.py index 6b0c9efe1572..5aac1f6debea 100644 --- a/homeassistant/components/rflink/sensor.py +++ b/homeassistant/components/rflink/sensor.py @@ -1,4 +1,6 @@ """Support for Rflink sensors.""" +from __future__ import annotations + from rflink.parser import PACKET_FIELDS, UNITS import voluptuous as vol @@ -10,8 +12,11 @@ from homeassistant.const import ( CONF_SENSOR_TYPE, CONF_UNIT_OF_MEASUREMENT, ) +from homeassistant.core import HomeAssistant 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 ( CONF_ALIASES, @@ -77,7 +82,12 @@ def devices_from_config(domain_config): return devices -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 Rflink platform.""" async_add_entities(devices_from_config(config)) diff --git a/homeassistant/components/ring/sensor.py b/homeassistant/components/ring/sensor.py index d4ac5bafc2d3..4036c9adb4d5 100644 --- a/homeassistant/components/ring/sensor.py +++ b/homeassistant/components/ring/sensor.py @@ -8,15 +8,21 @@ from homeassistant.components.sensor import ( SensorEntity, SensorEntityDescription, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.icon import icon_for_battery_level from . import DOMAIN from .entity import RingEntityMixin -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 a sensor for a Ring device.""" devices = hass.data[DOMAIN][config_entry.entry_id]["devices"] diff --git a/homeassistant/components/ripple/sensor.py b/homeassistant/components/ripple/sensor.py index a99bb86c5ef8..cbb72ab8e574 100644 --- a/homeassistant/components/ripple/sensor.py +++ b/homeassistant/components/ripple/sensor.py @@ -1,4 +1,6 @@ """Support for Ripple sensors.""" +from __future__ import annotations + from datetime import timedelta from pyripple import get_balance @@ -6,7 +8,10 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, CONF_ADDRESS, 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 ATTRIBUTION = "Data provided by ripple.com" @@ -22,7 +27,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 Ripple.com sensors.""" address = config.get(CONF_ADDRESS) name = config.get(CONF_NAME) diff --git a/homeassistant/components/risco/sensor.py b/homeassistant/components/risco/sensor.py index fdb7bbc32b41..07ebd71909eb 100644 --- a/homeassistant/components/risco/sensor.py +++ b/homeassistant/components/risco/sensor.py @@ -1,6 +1,9 @@ """Sensor for Risco Events.""" from homeassistant.components.binary_sensor import DOMAIN as BS_DOMAIN from homeassistant.components.sensor import SensorDeviceClass, SensorEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import DOMAIN, EVENTS_COORDINATOR @@ -27,7 +30,11 @@ EVENT_ATTRIBUTES = [ ] -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 device.""" coordinator = hass.data[DOMAIN][config_entry.entry_id][EVENTS_COORDINATOR] sensors = [ diff --git a/homeassistant/components/roomba/sensor.py b/homeassistant/components/roomba/sensor.py index ae33930b549b..df9d5d41a6e9 100644 --- a/homeassistant/components/roomba/sensor.py +++ b/homeassistant/components/roomba/sensor.py @@ -1,15 +1,22 @@ """Sensor for checking the battery level of Roomba.""" from homeassistant.components.sensor import SensorDeviceClass, SensorEntity from homeassistant.components.vacuum import STATE_DOCKED +from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import EntityCategory +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.icon import icon_for_battery_level from .const import BLID, DOMAIN, ROOMBA_SESSION from .irobot_base import IRobotEntity -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 the iRobot Roomba vacuum cleaner.""" domain_data = hass.data[DOMAIN][config_entry.entry_id] roomba = domain_data[ROOMBA_SESSION] diff --git a/homeassistant/components/rova/sensor.py b/homeassistant/components/rova/sensor.py index 654323a79f4f..1057d9b5ea8f 100644 --- a/homeassistant/components/rova/sensor.py +++ b/homeassistant/components/rova/sensor.py @@ -15,7 +15,10 @@ from homeassistant.components.sensor import ( SensorEntityDescription, ) from homeassistant.const import CONF_MONITORED_CONDITIONS, 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 get_time_zone, now @@ -66,7 +69,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( _LOGGER = logging.getLogger(__name__) -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: """Create the Rova data service and sensors.""" zip_code = config[CONF_ZIP_CODE] diff --git a/homeassistant/components/rtorrent/sensor.py b/homeassistant/components/rtorrent/sensor.py index 78dfca925256..278741f20db0 100644 --- a/homeassistant/components/rtorrent/sensor.py +++ b/homeassistant/components/rtorrent/sensor.py @@ -18,8 +18,11 @@ from homeassistant.const import ( DATA_RATE_KILOBYTES_PER_SECOND, STATE_IDLE, ) +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 _LOGGER = logging.getLogger(__name__) @@ -88,7 +91,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 rtorrent sensors.""" url = config[CONF_URL] name = config[CONF_NAME]