From 5ddab5a7f206225c3039128d2abb91b81f5772ee Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 3 Jan 2022 17:17:44 +0100 Subject: [PATCH] Add setup type hints to number, remote and scene (#63299) * Add number setup type hints * Add remote setup type hints * Add scene setup type hints Co-authored-by: epenet --- homeassistant/components/apple_tv/remote.py | 10 ++++++++-- homeassistant/components/fibaro/scene.py | 12 +++++++++++- .../hunterdouglas_powerview/scene.py | 18 +++++++++++++++--- homeassistant/components/litejet/scene.py | 9 ++++++++- homeassistant/components/lutron/scene.py | 12 +++++++++++- .../components/lutron_caseta/scene.py | 9 ++++++++- homeassistant/components/nexia/scene.py | 10 ++++++++-- .../components/panasonic_viera/remote.py | 9 ++++++++- homeassistant/components/philips_js/remote.py | 10 ++++++++-- homeassistant/components/screenlogic/number.py | 9 ++++++++- homeassistant/components/smartthings/scene.py | 9 ++++++++- homeassistant/components/upb/scene.py | 9 ++++++++- homeassistant/components/velux/scene.py | 12 +++++++++++- homeassistant/components/xbox/remote.py | 7 ++++++- 14 files changed, 126 insertions(+), 19 deletions(-) diff --git a/homeassistant/components/apple_tv/remote.py b/homeassistant/components/apple_tv/remote.py index 853ea29fcf5..2e8cfc4f6b5 100644 --- a/homeassistant/components/apple_tv/remote.py +++ b/homeassistant/components/apple_tv/remote.py @@ -1,5 +1,4 @@ """Remote control support for Apple TV.""" - import asyncio import logging @@ -9,7 +8,10 @@ from homeassistant.components.remote import ( DEFAULT_DELAY_SECS, RemoteEntity, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_NAME +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import AppleTVEntity from .const import DOMAIN @@ -19,7 +21,11 @@ _LOGGER = logging.getLogger(__name__) PARALLEL_UPDATES = 0 -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: """Load Apple TV remote based on a config entry.""" name = config_entry.data[CONF_NAME] manager = hass.data[DOMAIN][config_entry.unique_id] diff --git a/homeassistant/components/fibaro/scene.py b/homeassistant/components/fibaro/scene.py index d1232468620..02ebd5cd99e 100644 --- a/homeassistant/components/fibaro/scene.py +++ b/homeassistant/components/fibaro/scene.py @@ -1,12 +1,22 @@ """Support for Fibaro scenes.""" +from __future__ import annotations + from typing import Any from homeassistant.components.scene import Scene +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import FIBARO_DEVICES, FibaroDevice -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 scenes.""" if discovery_info is None: return diff --git a/homeassistant/components/hunterdouglas_powerview/scene.py b/homeassistant/components/hunterdouglas_powerview/scene.py index c30cde8d043..224d5bf7b7c 100644 --- a/homeassistant/components/hunterdouglas_powerview/scene.py +++ b/homeassistant/components/hunterdouglas_powerview/scene.py @@ -1,13 +1,18 @@ """Support for Powerview scenes from a Powerview hub.""" +from __future__ import annotations + from typing import Any from aiopvapi.resources.scene import Scene as PvScene import voluptuous as vol from homeassistant.components.scene import Scene -from homeassistant.config_entries import SOURCE_IMPORT +from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.const import CONF_HOST, CONF_PLATFORM +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 .const import ( COORDINATOR, @@ -27,7 +32,12 @@ PLATFORM_SCHEMA = vol.Schema( ) -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: """Import platform from yaml.""" hass.async_create_task( @@ -39,7 +49,9 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= ) -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 powerview scene entries.""" pv_data = hass.data[DOMAIN][entry.entry_id] diff --git a/homeassistant/components/litejet/scene.py b/homeassistant/components/litejet/scene.py index 8b285d58ef1..0a091d7e729 100644 --- a/homeassistant/components/litejet/scene.py +++ b/homeassistant/components/litejet/scene.py @@ -2,13 +2,20 @@ from typing import Any from homeassistant.components.scene import Scene +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN ATTR_NUMBER = "number" -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 entry.""" system = hass.data[DOMAIN] diff --git a/homeassistant/components/lutron/scene.py b/homeassistant/components/lutron/scene.py index eaadc4197fe..68d1a4805fc 100644 --- a/homeassistant/components/lutron/scene.py +++ b/homeassistant/components/lutron/scene.py @@ -1,12 +1,22 @@ """Support for Lutron scenes.""" +from __future__ import annotations + from typing import Any from homeassistant.components.scene import Scene +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import LUTRON_CONTROLLER, LUTRON_DEVICES, LutronDevice -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 Lutron scenes.""" devs = [] for scene_data in hass.data[LUTRON_DEVICES]["scene"]: diff --git a/homeassistant/components/lutron_caseta/scene.py b/homeassistant/components/lutron_caseta/scene.py index 43e0429d151..d81a741359c 100644 --- a/homeassistant/components/lutron_caseta/scene.py +++ b/homeassistant/components/lutron_caseta/scene.py @@ -2,11 +2,18 @@ from typing import Any from homeassistant.components.scene import Scene +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import BRIDGE_LEAP, DOMAIN as CASETA_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 the Lutron Caseta scene platform. Adds scenes from the Caseta bridge associated with the config_entry as diff --git a/homeassistant/components/nexia/scene.py b/homeassistant/components/nexia/scene.py index 3eb64fc8d0f..d2bbf97c8f1 100644 --- a/homeassistant/components/nexia/scene.py +++ b/homeassistant/components/nexia/scene.py @@ -1,8 +1,10 @@ """Support for Nexia Automations.""" - from typing import Any from homeassistant.components.scene import Scene +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_call_later from .const import ATTR_DESCRIPTION, DOMAIN @@ -12,7 +14,11 @@ from .entity import NexiaEntity SCENE_ACTIVATION_TIME = 5 -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 automations for a Nexia device.""" coordinator: NexiaDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] nexia_home = coordinator.nexia_home diff --git a/homeassistant/components/panasonic_viera/remote.py b/homeassistant/components/panasonic_viera/remote.py index 30653847b43..bdb44a72a74 100644 --- a/homeassistant/components/panasonic_viera/remote.py +++ b/homeassistant/components/panasonic_viera/remote.py @@ -2,8 +2,11 @@ from __future__ import annotations from homeassistant.components.remote import RemoteEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_NAME, STATE_ON +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import ( ATTR_DEVICE_INFO, @@ -17,7 +20,11 @@ from .const import ( ) -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 Panasonic Viera TV Remote from a config entry.""" config = config_entry.data diff --git a/homeassistant/components/philips_js/remote.py b/homeassistant/components/philips_js/remote.py index 639f5ab7560..de1e2ce43a3 100644 --- a/homeassistant/components/philips_js/remote.py +++ b/homeassistant/components/philips_js/remote.py @@ -1,5 +1,4 @@ """Remote control support for Apple TV.""" - import asyncio from haphilipsjs.typing import SystemType @@ -10,13 +9,20 @@ from homeassistant.components.remote import ( DEFAULT_DELAY_SECS, RemoteEntity, ) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import LOGGER, PhilipsTVDataUpdateCoordinator from .const import CONF_SYSTEM, 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 the configuration entry.""" coordinator = hass.data[DOMAIN][config_entry.entry_id] async_add_entities( diff --git a/homeassistant/components/screenlogic/number.py b/homeassistant/components/screenlogic/number.py index 0072962a7d7..253b5c9641e 100644 --- a/homeassistant/components/screenlogic/number.py +++ b/homeassistant/components/screenlogic/number.py @@ -4,6 +4,9 @@ import logging from screenlogicpy.const import BODY_TYPE, DATA as SL_DATA, EQUIPMENT, SCG from homeassistant.components.number import NumberEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import ScreenlogicEntity from .const import DOMAIN @@ -18,7 +21,11 @@ SUPPORTED_SCG_NUMBERS = ( ) -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 entry.""" coordinator = hass.data[DOMAIN][config_entry.entry_id] equipment_flags = coordinator.data[SL_DATA.KEY_CONFIG]["equipment_flags"] diff --git a/homeassistant/components/smartthings/scene.py b/homeassistant/components/smartthings/scene.py index e3d93c663fa..9ccda5fd5e6 100644 --- a/homeassistant/components/smartthings/scene.py +++ b/homeassistant/components/smartthings/scene.py @@ -2,11 +2,18 @@ from typing import Any from homeassistant.components.scene import Scene +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DATA_BROKERS, 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: """Add switches for a config entry.""" broker = hass.data[DOMAIN][DATA_BROKERS][config_entry.entry_id] async_add_entities([SmartThingsScene(scene) for scene in broker.scenes.values()]) diff --git a/homeassistant/components/upb/scene.py b/homeassistant/components/upb/scene.py index c0c3fb0ffbc..2334e87aeaa 100644 --- a/homeassistant/components/upb/scene.py +++ b/homeassistant/components/upb/scene.py @@ -2,7 +2,10 @@ from typing import Any from homeassistant.components.scene import Scene +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_platform +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import UpbEntity from .const import DOMAIN, UPB_BLINK_RATE_SCHEMA, UPB_BRIGHTNESS_RATE_SCHEMA @@ -14,7 +17,11 @@ SERVICE_LINK_FADE_START = "link_fade_start" SERVICE_LINK_BLINK = "link_blink" -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 UPB link based on a config entry.""" upb = hass.data[DOMAIN][config_entry.entry_id]["upb"] unique_id = config_entry.entry_id diff --git a/homeassistant/components/velux/scene.py b/homeassistant/components/velux/scene.py index 96ff0558fff..324bae027fc 100644 --- a/homeassistant/components/velux/scene.py +++ b/homeassistant/components/velux/scene.py @@ -1,12 +1,22 @@ """Support for VELUX scenes.""" +from __future__ import annotations + from typing import Any from homeassistant.components.scene import Scene +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import _LOGGER, DATA_VELUX -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 scenes for Velux platform.""" entities = [VeluxScene(scene) for scene in hass.data[DATA_VELUX].pyvlx.scenes] async_add_entities(entities) diff --git a/homeassistant/components/xbox/remote.py b/homeassistant/components/xbox/remote.py index 04f25c5f632..897836e5c42 100644 --- a/homeassistant/components/xbox/remote.py +++ b/homeassistant/components/xbox/remote.py @@ -20,14 +20,19 @@ from homeassistant.components.remote import ( DEFAULT_DELAY_SECS, RemoteEntity, ) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity from . import ConsoleData, XboxUpdateCoordinator 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 Xbox media_player from a config entry.""" client: XboxLiveClient = hass.data[DOMAIN][entry.entry_id]["client"] consoles: SmartglassConsoleList = hass.data[DOMAIN][entry.entry_id]["consoles"]