From 7f9b7c7b0e8398a4a85eb648da55cc4058e93802 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 3 Jan 2022 15:02:21 +0100 Subject: [PATCH] Add light setup type hints [a-i] (#63291) Co-authored-by: epenet --- homeassistant/components/avea/light.py | 12 +++++++++++- homeassistant/components/axis/light.py | 11 ++++++++--- homeassistant/components/blebox/light.py | 9 ++++++++- homeassistant/components/blinksticklight/light.py | 12 +++++++++++- homeassistant/components/decora/light.py | 12 +++++++++++- homeassistant/components/enocean/light.py | 12 +++++++++++- homeassistant/components/eufy/light.py | 12 +++++++++++- homeassistant/components/everlights/light.py | 10 +++++++++- homeassistant/components/fibaro/light.py | 12 +++++++++++- homeassistant/components/freedompro/light.py | 8 ++++++-- homeassistant/components/futurenow/light.py | 12 +++++++++++- homeassistant/components/hive/light.py | 7 ++++++- homeassistant/components/home_connect/light.py | 9 ++++++++- homeassistant/components/homematic/light.py | 12 +++++++++++- homeassistant/components/homeworks/light.py | 13 +++++++++++-- homeassistant/components/iglo/light.py | 12 +++++++++++- homeassistant/components/ihc/light.py | 12 +++++++++++- homeassistant/components/insteon/light.py | 11 ++++++++--- 18 files changed, 174 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/avea/light.py b/homeassistant/components/avea/light.py index ceb66ff39b6..56dfd4878ff 100644 --- a/homeassistant/components/avea/light.py +++ b/homeassistant/components/avea/light.py @@ -1,4 +1,6 @@ """Support for the Elgato Avea lights.""" +from __future__ import annotations + import avea # pylint: disable=import-error from homeassistant.components.light import ( @@ -8,13 +10,21 @@ from homeassistant.components.light import ( SUPPORT_COLOR, LightEntity, ) +from homeassistant.core import HomeAssistant from homeassistant.exceptions import PlatformNotReady +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType import homeassistant.util.color as color_util SUPPORT_AVEA = SUPPORT_BRIGHTNESS | SUPPORT_COLOR -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 Avea platform.""" try: nearby_bulbs = avea.discover_avea_bulbs() diff --git a/homeassistant/components/axis/light.py b/homeassistant/components/axis/light.py index ced795882e1..caa7880734c 100644 --- a/homeassistant/components/axis/light.py +++ b/homeassistant/components/axis/light.py @@ -1,5 +1,4 @@ """Support for Axis lights.""" - from axis.event_stream import CLASS_LIGHT from homeassistant.components.light import ( @@ -7,14 +6,20 @@ from homeassistant.components.light import ( COLOR_MODE_BRIGHTNESS, LightEntity, ) -from homeassistant.core import callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .axis_base import AxisEventBase from .const import DOMAIN as AXIS_DOMAIN -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 Axis light.""" device = hass.data[AXIS_DOMAIN][config_entry.unique_id] diff --git a/homeassistant/components/blebox/light.py b/homeassistant/components/blebox/light.py index efbdb038794..48e8ec3f4bb 100644 --- a/homeassistant/components/blebox/light.py +++ b/homeassistant/components/blebox/light.py @@ -11,6 +11,9 @@ from homeassistant.components.light import ( COLOR_MODE_RGBW, LightEntity, ) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.util.color import color_rgb_to_hex, rgb_hex_to_rgb_list from . import BleBoxEntity, create_blebox_entities @@ -18,7 +21,11 @@ from . import BleBoxEntity, create_blebox_entities _LOGGER = logging.getLogger(__name__) -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 BleBox entry.""" create_blebox_entities( diff --git a/homeassistant/components/blinksticklight/light.py b/homeassistant/components/blinksticklight/light.py index a45eadc3d3a..3a2410e77cf 100644 --- a/homeassistant/components/blinksticklight/light.py +++ b/homeassistant/components/blinksticklight/light.py @@ -1,4 +1,6 @@ """Support for Blinkstick lights.""" +from __future__ import annotations + from blinkstick import blinkstick import voluptuous as vol @@ -11,7 +13,10 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import 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 import homeassistant.util.color as color_util CONF_SERIAL = "serial" @@ -28,7 +33,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 Blinkstick device specified by serial number.""" name = config[CONF_NAME] diff --git a/homeassistant/components/decora/light.py b/homeassistant/components/decora/light.py index 2564ff0cd9e..e29222c8eee 100644 --- a/homeassistant/components/decora/light.py +++ b/homeassistant/components/decora/light.py @@ -1,4 +1,6 @@ """Support for Decora dimmers.""" +from __future__ import annotations + import copy from functools import wraps import logging @@ -16,7 +18,10 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_API_KEY, CONF_DEVICES, 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 _LOGGER = logging.getLogger(__name__) @@ -71,7 +76,12 @@ def retry(method): return wrapper_retry -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 an Decora switch.""" lights = [] for address, device_config in config[CONF_DEVICES].items(): diff --git a/homeassistant/components/enocean/light.py b/homeassistant/components/enocean/light.py index d743b6c3346..92887be9b45 100644 --- a/homeassistant/components/enocean/light.py +++ b/homeassistant/components/enocean/light.py @@ -1,4 +1,6 @@ """Support for EnOcean light sources.""" +from __future__ import annotations + import math import voluptuous as vol @@ -10,7 +12,10 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_ID, 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 .device import EnOceanEntity @@ -28,7 +33,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 EnOcean light platform.""" sender_id = config.get(CONF_SENDER_ID) dev_name = config.get(CONF_NAME) diff --git a/homeassistant/components/eufy/light.py b/homeassistant/components/eufy/light.py index ceff6775492..c303d9cffc0 100644 --- a/homeassistant/components/eufy/light.py +++ b/homeassistant/components/eufy/light.py @@ -1,4 +1,6 @@ """Support for Eufy lights.""" +from __future__ import annotations + import lakeside from homeassistant.components.light import ( @@ -10,6 +12,9 @@ from homeassistant.components.light import ( SUPPORT_COLOR_TEMP, LightEntity, ) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType import homeassistant.util.color as color_util from homeassistant.util.color import ( color_temperature_kelvin_to_mired as kelvin_to_mired, @@ -20,7 +25,12 @@ EUFY_MAX_KELVIN = 6500 EUFY_MIN_KELVIN = 2700 -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 Eufy bulbs.""" if discovery_info is None: return diff --git a/homeassistant/components/everlights/light.py b/homeassistant/components/everlights/light.py index e451b83c1fa..ad3c5130224 100644 --- a/homeassistant/components/everlights/light.py +++ b/homeassistant/components/everlights/light.py @@ -18,9 +18,12 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_HOSTS +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.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType import homeassistant.util.color as color_util _LOGGER = logging.getLogger(__name__) @@ -44,7 +47,12 @@ def color_int_to_rgb(value: int) -> tuple[int, int, int]: return (value >> 16, (value >> 8) & 0xFF, value & 0xFF) -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 EverLights lights from configuration.yaml.""" lights = [] diff --git a/homeassistant/components/fibaro/light.py b/homeassistant/components/fibaro/light.py index fa9248dc11e..f3f0ee23181 100644 --- a/homeassistant/components/fibaro/light.py +++ b/homeassistant/components/fibaro/light.py @@ -1,4 +1,6 @@ """Support for Fibaro lights.""" +from __future__ import annotations + import asyncio from functools import partial @@ -13,6 +15,9 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_WHITE_VALUE +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType import homeassistant.util.color as color_util from . import CONF_COLOR, CONF_DIMMING, CONF_RESET_COLOR, FIBARO_DEVICES, FibaroDevice @@ -35,7 +40,12 @@ def scaleto100(value): return max(0, min(100, ((value * 100.0) / 255.0))) -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: """Perform the setup for Fibaro controller devices.""" if discovery_info is None: return diff --git a/homeassistant/components/freedompro/light.py b/homeassistant/components/freedompro/light.py index 5610a561fda..95731da914e 100644 --- a/homeassistant/components/freedompro/light.py +++ b/homeassistant/components/freedompro/light.py @@ -11,16 +11,20 @@ from homeassistant.components.light import ( COLOR_MODE_ONOFF, LightEntity, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_API_KEY -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import aiohttp_client from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import DOMAIN -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 Freedompro light.""" api_key = entry.data[CONF_API_KEY] coordinator = hass.data[DOMAIN][entry.entry_id] diff --git a/homeassistant/components/futurenow/light.py b/homeassistant/components/futurenow/light.py index 04a731a7272..4cd61865706 100644 --- a/homeassistant/components/futurenow/light.py +++ b/homeassistant/components/futurenow/light.py @@ -1,4 +1,6 @@ """Support for FutureNow Ethernet unit outputs as Lights.""" +from __future__ import annotations + import pyfnip import voluptuous as vol @@ -9,7 +11,10 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_DEVICES, CONF_HOST, CONF_NAME, CONF_PORT +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 CONF_DRIVER = "driver" CONF_DRIVER_FNIP6X10AD = "FNIP6x10ad" @@ -33,7 +38,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 light platform for each FutureNow unit.""" lights = [] for channel, device_config in config[CONF_DEVICES].items(): diff --git a/homeassistant/components/hive/light.py b/homeassistant/components/hive/light.py index f9d235d625f..89a59c1f4b0 100644 --- a/homeassistant/components/hive/light.py +++ b/homeassistant/components/hive/light.py @@ -10,7 +10,10 @@ from homeassistant.components.light import ( SUPPORT_COLOR_TEMP, LightEntity, ) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback import homeassistant.util.color as color_util from . import HiveEntity, refresh_system @@ -20,7 +23,9 @@ PARALLEL_UPDATES = 0 SCAN_INTERVAL = timedelta(seconds=15) -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 Hive thermostat based on a config entry.""" hive = hass.data[DOMAIN][entry.entry_id] diff --git a/homeassistant/components/home_connect/light.py b/homeassistant/components/home_connect/light.py index dc176ba90f2..626ceda32fe 100644 --- a/homeassistant/components/home_connect/light.py +++ b/homeassistant/components/home_connect/light.py @@ -11,7 +11,10 @@ from homeassistant.components.light import ( SUPPORT_COLOR, LightEntity, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_ENTITIES +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback import homeassistant.util.color as color_util from .const import ( @@ -30,7 +33,11 @@ from .entity import HomeConnectEntity _LOGGER = logging.getLogger(__name__) -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 Home Connect light.""" def get_entities(): diff --git a/homeassistant/components/homematic/light.py b/homeassistant/components/homematic/light.py index 036034bf801..711d939900c 100644 --- a/homeassistant/components/homematic/light.py +++ b/homeassistant/components/homematic/light.py @@ -1,4 +1,6 @@ """Support for Homematic lights.""" +from __future__ import annotations + from homeassistant.components.light import ( ATTR_BRIGHTNESS, ATTR_COLOR_TEMP, @@ -12,6 +14,9 @@ from homeassistant.components.light import ( SUPPORT_TRANSITION, LightEntity, ) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import ATTR_DISCOVER_DEVICES from .entity import HMDevice @@ -19,7 +24,12 @@ from .entity import HMDevice SUPPORT_HOMEMATIC = SUPPORT_BRIGHTNESS -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 Homematic light platform.""" if discovery_info is None: return diff --git a/homeassistant/components/homeworks/light.py b/homeassistant/components/homeworks/light.py index f62477148f7..a8c4fb2d5b5 100644 --- a/homeassistant/components/homeworks/light.py +++ b/homeassistant/components/homeworks/light.py @@ -1,4 +1,6 @@ """Support for Lutron Homeworks lights.""" +from __future__ import annotations + import logging from pyhomeworks.pyhomeworks import HW_LIGHT_CHANGED @@ -9,15 +11,22 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_NAME -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback 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_ADDR, CONF_DIMMERS, CONF_RATE, HOMEWORKS_CONTROLLER, HomeworksDevice _LOGGER = logging.getLogger(__name__) -def setup_platform(hass, config, add_entities, discover_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities: AddEntitiesCallback, + discover_info: DiscoveryInfoType | None = None, +) -> None: """Set up Homeworks lights.""" if discover_info is None: return diff --git a/homeassistant/components/iglo/light.py b/homeassistant/components/iglo/light.py index dbabc3261b5..71dd34af032 100644 --- a/homeassistant/components/iglo/light.py +++ b/homeassistant/components/iglo/light.py @@ -1,4 +1,6 @@ """Support for lights under the iGlo brand.""" +from __future__ import annotations + import math from iglo import Lamp @@ -17,7 +19,10 @@ from homeassistant.components.light import ( LightEntity, ) from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT +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.color as color_util DEFAULT_NAME = "iGlo Light" @@ -32,7 +37,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 iGlo lights.""" host = config.get(CONF_HOST) name = config.get(CONF_NAME) diff --git a/homeassistant/components/ihc/light.py b/homeassistant/components/ihc/light.py index d4a3bd8b1f3..b6269865072 100644 --- a/homeassistant/components/ihc/light.py +++ b/homeassistant/components/ihc/light.py @@ -1,9 +1,14 @@ """Support for IHC lights.""" +from __future__ import annotations + from homeassistant.components.light import ( ATTR_BRIGHTNESS, SUPPORT_BRIGHTNESS, LightEntity, ) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import IHC_CONTROLLER, IHC_INFO from .const import CONF_DIMMABLE, CONF_OFF_ID, CONF_ON_ID @@ -11,7 +16,12 @@ from .ihcdevice import IHCDevice from .util import async_pulse, async_set_bool, async_set_int -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 IHC lights platform.""" if discovery_info is None: return diff --git a/homeassistant/components/insteon/light.py b/homeassistant/components/insteon/light.py index e8b95598fb8..921432d282f 100644 --- a/homeassistant/components/insteon/light.py +++ b/homeassistant/components/insteon/light.py @@ -1,5 +1,4 @@ """Support for Insteon lights via PowerLinc Modem.""" - from pyinsteon.extended_property import ON_LEVEL from homeassistant.components.light import ( @@ -8,8 +7,10 @@ from homeassistant.components.light import ( SUPPORT_BRIGHTNESS, LightEntity, ) -from homeassistant.core import callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import SIGNAL_ADD_ENTITIES from .insteon_entity import InsteonEntity @@ -18,7 +19,11 @@ from .utils import async_add_insteon_entities MAX_BRIGHTNESS = 255 -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 Insteon lights from a config entry.""" @callback