From e4a88e921fc39b76933900b313f0c0add84efe56 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 3 Jan 2022 19:24:34 +0100 Subject: [PATCH] Add switch setup type hints [n-r] (#63304) Co-authored-by: epenet --- homeassistant/components/numato/switch.py | 12 +++++++++++- homeassistant/components/omnilogic/switch.py | 7 ++++++- homeassistant/components/orvibo/switch.py | 12 +++++++++++- homeassistant/components/ozw/switch.py | 10 ++++++++-- homeassistant/components/pcal9535a/switch.py | 12 +++++++++++- homeassistant/components/pencom/switch.py | 12 +++++++++++- homeassistant/components/plugwise/switch.py | 11 ++++++++--- homeassistant/components/progettihwsw/switch.py | 10 ++++++++-- homeassistant/components/qwikswitch/switch.py | 12 +++++++++++- homeassistant/components/rachio/switch.py | 10 ++++++++-- homeassistant/components/rainbird/switch.py | 13 +++++++++++-- homeassistant/components/raspyrfm/switch.py | 12 +++++++++++- homeassistant/components/recswitch/switch.py | 11 ++++++++++- homeassistant/components/remote_rpi_gpio/switch.py | 12 +++++++++++- homeassistant/components/rflink/switch.py | 12 +++++++++++- homeassistant/components/ring/switch.py | 10 ++++++++-- 16 files changed, 155 insertions(+), 23 deletions(-) diff --git a/homeassistant/components/numato/switch.py b/homeassistant/components/numato/switch.py index 505d28d0c40..ed77d8b82cb 100644 --- a/homeassistant/components/numato/switch.py +++ b/homeassistant/components/numato/switch.py @@ -1,4 +1,6 @@ """Switch platform integration for Numato USB GPIO expanders.""" +from __future__ import annotations + import logging from numato_gpio import NumatoGpioError @@ -9,14 +11,22 @@ from homeassistant.const import ( CONF_SWITCHES, DEVICE_DEFAULT_NAME, ) +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import ToggleEntity +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import CONF_INVERT_LOGIC, CONF_PORTS, DATA_API, DOMAIN _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 the configured Numato USB GPIO switch ports.""" if discovery_info is None: return diff --git a/homeassistant/components/omnilogic/switch.py b/homeassistant/components/omnilogic/switch.py index 8fffa384916..3edb4a20d33 100644 --- a/homeassistant/components/omnilogic/switch.py +++ b/homeassistant/components/omnilogic/switch.py @@ -5,7 +5,10 @@ from omnilogic import OmniLogicException import voluptuous as vol from homeassistant.components.switch import SwitchEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .common import OmniLogicEntity, OmniLogicUpdateCoordinator, check_guard from .const import COORDINATOR, DOMAIN, PUMP_TYPES @@ -14,7 +17,9 @@ SERVICE_SET_SPEED = "set_pump_speed" OMNILOGIC_SWITCH_OFF = 7 -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 light platform.""" coordinator = hass.data[DOMAIN][entry.entry_id][COORDINATOR] diff --git a/homeassistant/components/orvibo/switch.py b/homeassistant/components/orvibo/switch.py index f7a16036f00..b526b9057bd 100644 --- a/homeassistant/components/orvibo/switch.py +++ b/homeassistant/components/orvibo/switch.py @@ -1,4 +1,6 @@ """Support for Orvibo S20 Wifi Smart Switches.""" +from __future__ import annotations + import logging from orvibo.s20 import S20, S20Exception, discover @@ -12,7 +14,10 @@ from homeassistant.const import ( CONF_NAME, CONF_SWITCHES, ) +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__) @@ -36,7 +41,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( ) -def setup_platform(hass, config, add_entities_callback, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities_callback: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up S20 switches.""" switch_data = {} diff --git a/homeassistant/components/ozw/switch.py b/homeassistant/components/ozw/switch.py index c1a0ef353b8..69ae1dfb379 100644 --- a/homeassistant/components/ozw/switch.py +++ b/homeassistant/components/ozw/switch.py @@ -1,13 +1,19 @@ """Representation of Z-Wave switches.""" from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN, SwitchEntity -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 DATA_UNSUBSCRIBE, DOMAIN from .entity import ZWaveDeviceEntity -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 Z-Wave switch from config entry.""" @callback diff --git a/homeassistant/components/pcal9535a/switch.py b/homeassistant/components/pcal9535a/switch.py index 028beaae4ab..70da61a597a 100644 --- a/homeassistant/components/pcal9535a/switch.py +++ b/homeassistant/components/pcal9535a/switch.py @@ -1,4 +1,6 @@ """Support for switch sensor using I2C PCAL9535A chip.""" +from __future__ import annotations + import logging from pcal9535a import PCAL9535A @@ -6,7 +8,10 @@ import voluptuous as vol from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity from homeassistant.const import DEVICE_DEFAULT_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 CONF_INVERT_LOGIC = "invert_logic" CONF_I2C_ADDRESS = "i2c_address" @@ -41,7 +46,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: """Set up the PCAL9535A devices.""" _LOGGER.warning( "The PCAL9535A I/O Expander integration is deprecated and will be removed " diff --git a/homeassistant/components/pencom/switch.py b/homeassistant/components/pencom/switch.py index 5621846e496..8f83259ef30 100644 --- a/homeassistant/components/pencom/switch.py +++ b/homeassistant/components/pencom/switch.py @@ -1,4 +1,6 @@ """Pencom relay control.""" +from __future__ import annotations + import logging from pencompy.pencompy import Pencompy @@ -6,8 +8,11 @@ import voluptuous as vol from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT +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__) @@ -34,7 +39,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: """Pencom relay platform (pencompy).""" # Assign configuration variables. diff --git a/homeassistant/components/plugwise/switch.py b/homeassistant/components/plugwise/switch.py index 033fbcd7693..1aa8bdc51d7 100644 --- a/homeassistant/components/plugwise/switch.py +++ b/homeassistant/components/plugwise/switch.py @@ -1,11 +1,12 @@ """Plugwise Switch component for HomeAssistant.""" - import logging from plugwise.exceptions import PlugwiseException from homeassistant.components.switch import SwitchEntity -from homeassistant.core import callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import COORDINATOR, DOMAIN, SWITCH_ICON from .gateway import SmileGateway @@ -13,7 +14,11 @@ from .gateway import SmileGateway _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 Smile switches from a config entry.""" # PLACEHOLDER USB entry setup return await async_setup_entry_gateway(hass, config_entry, async_add_entities) diff --git a/homeassistant/components/progettihwsw/switch.py b/homeassistant/components/progettihwsw/switch.py index 1d4c1de9993..529e73f13dd 100644 --- a/homeassistant/components/progettihwsw/switch.py +++ b/homeassistant/components/progettihwsw/switch.py @@ -1,5 +1,4 @@ """Control switches.""" - from datetime import timedelta import logging @@ -7,6 +6,9 @@ from ProgettiHWSW.relay import Relay import async_timeout from homeassistant.components.switch import SwitchEntity +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, DataUpdateCoordinator, @@ -18,7 +20,11 @@ from .const import DEFAULT_POLLING_INTERVAL_SEC, DOMAIN _LOGGER = logging.getLogger(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 switches from a config entry.""" board_api = hass.data[DOMAIN][config_entry.entry_id] relay_count = config_entry.data["relay_count"] diff --git a/homeassistant/components/qwikswitch/switch.py b/homeassistant/components/qwikswitch/switch.py index 61ef13f9e7a..e36fc60d589 100644 --- a/homeassistant/components/qwikswitch/switch.py +++ b/homeassistant/components/qwikswitch/switch.py @@ -1,10 +1,20 @@ """Support for Qwikswitch relays.""" +from __future__ import annotations + from homeassistant.components.switch import SwitchEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DOMAIN as QWIKSWITCH, QSToggleEntity -async def async_setup_platform(hass, _, add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + _: ConfigType, + add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Add switches from the main Qwikswitch component.""" if discovery_info is None: return diff --git a/homeassistant/components/rachio/switch.py b/homeassistant/components/rachio/switch.py index 0108362f168..65487ded792 100644 --- a/homeassistant/components/rachio/switch.py +++ b/homeassistant/components/rachio/switch.py @@ -7,11 +7,13 @@ import logging import voluptuous as vol from homeassistant.components.switch import SwitchEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_ENTITY_ID, ATTR_ID -from homeassistant.core import ServiceCall, callback +from homeassistant.core import HomeAssistant, ServiceCall, callback from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_track_point_in_utc_time from homeassistant.util.dt import as_timestamp, now, parse_datetime, utc_from_timestamp @@ -88,7 +90,11 @@ START_MULTIPLE_ZONES_SCHEMA = vol.Schema( ) -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 Rachio switches.""" zone_entities = [] has_flex_sched = False diff --git a/homeassistant/components/rainbird/switch.py b/homeassistant/components/rainbird/switch.py index 435039ca231..f18e42b058f 100644 --- a/homeassistant/components/rainbird/switch.py +++ b/homeassistant/components/rainbird/switch.py @@ -1,11 +1,15 @@ """Support for Rain Bird Irrigation system LNK WiFi Module.""" +from __future__ import annotations + from pyrainbird import AvailableStations, RainbirdController import voluptuous as vol from homeassistant.components.switch import SwitchEntity from homeassistant.const import ATTR_ENTITY_ID, CONF_FRIENDLY_NAME, CONF_TRIGGER_TIME -from homeassistant.core import ServiceCall +from homeassistant.core import HomeAssistant, ServiceCall from homeassistant.helpers import config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import CONF_ZONES, DATA_RAINBIRD, DOMAIN, RAINBIRD_CONTROLLER @@ -28,7 +32,12 @@ SERVICE_SCHEMA_RAIN_DELAY = vol.Schema( ) -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 Rain Bird switches over a Rain Bird controller.""" if discovery_info is None: diff --git a/homeassistant/components/raspyrfm/switch.py b/homeassistant/components/raspyrfm/switch.py index 56c42cf7e69..695a8415cc7 100644 --- a/homeassistant/components/raspyrfm/switch.py +++ b/homeassistant/components/raspyrfm/switch.py @@ -1,4 +1,6 @@ """Support for switches that can be controlled using the RaspyRFM rc module.""" +from __future__ import annotations + from raspyrfm_client import RaspyRFMClient from raspyrfm_client.device_implementations.controlunit.actions import Action from raspyrfm_client.device_implementations.controlunit.controlunit_constants import ( @@ -18,7 +20,10 @@ from homeassistant.const import ( CONF_SWITCHES, DEVICE_DEFAULT_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 CONF_GATEWAY_MANUFACTURER = "gateway_manufacturer" CONF_GATEWAY_MODEL = "gateway_model" @@ -49,7 +54,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 RaspyRFM switch.""" gateway_manufacturer = config.get( diff --git a/homeassistant/components/recswitch/switch.py b/homeassistant/components/recswitch/switch.py index 9c6ac8f9508..cc98a922f50 100644 --- a/homeassistant/components/recswitch/switch.py +++ b/homeassistant/components/recswitch/switch.py @@ -1,4 +1,5 @@ """Support for Ankuoo RecSwitch MS6126 devices.""" +from __future__ import annotations import logging @@ -7,7 +8,10 @@ import voluptuous as vol from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity from homeassistant.const import CONF_HOST, CONF_MAC, 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__) @@ -24,7 +28,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 device.""" host = config[CONF_HOST] diff --git a/homeassistant/components/remote_rpi_gpio/switch.py b/homeassistant/components/remote_rpi_gpio/switch.py index 6730342e260..5479b035556 100644 --- a/homeassistant/components/remote_rpi_gpio/switch.py +++ b/homeassistant/components/remote_rpi_gpio/switch.py @@ -1,9 +1,14 @@ """Allows to configure a switch using RPi GPIO.""" +from __future__ import annotations + import voluptuous as vol from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity from homeassistant.const import CONF_HOST, DEVICE_DEFAULT_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 . import CONF_INVERT_LOGIC, DEFAULT_INVERT_LOGIC from .. import remote_rpi_gpio @@ -21,7 +26,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 Remote Raspberry PI GPIO devices.""" address = config[CONF_HOST] invert_logic = config[CONF_INVERT_LOGIC] diff --git a/homeassistant/components/rflink/switch.py b/homeassistant/components/rflink/switch.py index 8f84286a616..fe82dd0297b 100644 --- a/homeassistant/components/rflink/switch.py +++ b/homeassistant/components/rflink/switch.py @@ -1,9 +1,14 @@ """Support for Rflink switches.""" +from __future__ import annotations + import voluptuous as vol from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity from homeassistant.const import 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 from . import ( CONF_ALIASES, @@ -59,7 +64,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/switch.py b/homeassistant/components/ring/switch.py index 09627b50965..682404e57f9 100644 --- a/homeassistant/components/ring/switch.py +++ b/homeassistant/components/ring/switch.py @@ -5,7 +5,9 @@ import logging import requests from homeassistant.components.switch import SwitchEntity -from homeassistant.core import callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity_platform import AddEntitiesCallback import homeassistant.util.dt as dt_util from . import DOMAIN @@ -24,7 +26,11 @@ SIREN_ICON = "mdi:alarm-bell" SKIP_UPDATES_DELAY = timedelta(seconds=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: """Create the switches for the Ring devices.""" devices = hass.data[DOMAIN][config_entry.entry_id]["devices"] switches = []