From eed7ce55b35418012aff75f13a5fe28a040a3365 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 3 Jan 2022 15:45:15 +0100 Subject: [PATCH] Add lock setup type hints (#63296) Co-authored-by: epenet --- homeassistant/components/august/lock.py | 10 ++++++++-- homeassistant/components/fibaro/lock.py | 12 +++++++++++- homeassistant/components/freedompro/lock.py | 8 ++++++-- homeassistant/components/homematic/lock.py | 12 +++++++++++- homeassistant/components/keba/lock.py | 12 +++++++++++- homeassistant/components/kiwi/lock.py | 13 +++++++++++-- homeassistant/components/mazda/lock.py | 10 ++++++++-- homeassistant/components/nuki/lock.py | 7 ++++++- homeassistant/components/ozw/lock.py | 10 ++++++++-- homeassistant/components/sesame/lock.py | 11 +++++++++-- homeassistant/components/smartthings/lock.py | 9 ++++++++- homeassistant/components/starline/lock.py | 7 ++++++- homeassistant/components/volvooncall/lock.py | 12 +++++++++++- homeassistant/components/xiaomi_aqara/lock.py | 10 ++++++++-- homeassistant/components/zwave/lock.py | 10 ++++++++-- 15 files changed, 130 insertions(+), 23 deletions(-) diff --git a/homeassistant/components/august/lock.py b/homeassistant/components/august/lock.py index 665b0036557..fc8653f96f2 100644 --- a/homeassistant/components/august/lock.py +++ b/homeassistant/components/august/lock.py @@ -7,8 +7,10 @@ from yalexs.lock import LockStatus from yalexs.util import update_lock_detail_from_activity from homeassistant.components.lock import ATTR_CHANGED_BY, LockEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_BATTERY_LEVEL -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.restore_state import RestoreEntity import homeassistant.util.dt as dt_util @@ -20,7 +22,11 @@ _LOGGER = logging.getLogger(__name__) LOCK_JAMMED_ERR = 531 -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 August locks.""" data = hass.data[DOMAIN][config_entry.entry_id][DATA_AUGUST] async_add_entities([AugustLock(data, lock) for lock in data.locks]) diff --git a/homeassistant/components/fibaro/lock.py b/homeassistant/components/fibaro/lock.py index 17c16a566db..bcfd10767e2 100644 --- a/homeassistant/components/fibaro/lock.py +++ b/homeassistant/components/fibaro/lock.py @@ -1,10 +1,20 @@ """Support for Fibaro locks.""" +from __future__ import annotations + from homeassistant.components.lock import DOMAIN, LockEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import FIBARO_DEVICES, FibaroDevice -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 Fibaro locks.""" if discovery_info is None: return diff --git a/homeassistant/components/freedompro/lock.py b/homeassistant/components/freedompro/lock.py index 57486f58d79..7dbc625966e 100644 --- a/homeassistant/components/freedompro/lock.py +++ b/homeassistant/components/freedompro/lock.py @@ -4,16 +4,20 @@ import json from pyfreedompro import put_state from homeassistant.components.lock import LockEntity +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 lock.""" api_key = entry.data[CONF_API_KEY] coordinator = hass.data[DOMAIN][entry.entry_id] diff --git a/homeassistant/components/homematic/lock.py b/homeassistant/components/homematic/lock.py index fa907ce9393..1ddeb474058 100644 --- a/homeassistant/components/homematic/lock.py +++ b/homeassistant/components/homematic/lock.py @@ -1,11 +1,21 @@ """Support for Homematic locks.""" +from __future__ import annotations + from homeassistant.components.lock import SUPPORT_OPEN, LockEntity +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 -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 lock platform.""" if discovery_info is None: return diff --git a/homeassistant/components/keba/lock.py b/homeassistant/components/keba/lock.py index 15cc00839fc..b7563ae9b8e 100644 --- a/homeassistant/components/keba/lock.py +++ b/homeassistant/components/keba/lock.py @@ -1,10 +1,20 @@ """Support for KEBA charging station switch.""" +from __future__ import annotations + from homeassistant.components.lock import LockEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DOMAIN -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 KEBA charging station platform.""" if discovery_info is None: return diff --git a/homeassistant/components/kiwi/lock.py b/homeassistant/components/kiwi/lock.py index 650d6d34de8..3884045c9bc 100644 --- a/homeassistant/components/kiwi/lock.py +++ b/homeassistant/components/kiwi/lock.py @@ -1,4 +1,6 @@ """Support for the KIWI.KI lock platform.""" +from __future__ import annotations + import logging from kiwiki import KiwiClient, KiwiException @@ -14,9 +16,11 @@ from homeassistant.const import ( STATE_LOCKED, STATE_UNLOCKED, ) -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.event import async_call_later +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType _LOGGER = logging.getLogger(__name__) @@ -31,7 +35,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 KIWI lock platform.""" try: diff --git a/homeassistant/components/mazda/lock.py b/homeassistant/components/mazda/lock.py index fb485bd7b13..3d7685bea17 100644 --- a/homeassistant/components/mazda/lock.py +++ b/homeassistant/components/mazda/lock.py @@ -1,12 +1,18 @@ """Platform for Mazda lock integration.""" - from homeassistant.components.lock import LockEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import MazdaEntity from .const import DATA_CLIENT, DATA_COORDINATOR, 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 lock platform.""" client = hass.data[DOMAIN][config_entry.entry_id][DATA_CLIENT] coordinator = hass.data[DOMAIN][config_entry.entry_id][DATA_COORDINATOR] diff --git a/homeassistant/components/nuki/lock.py b/homeassistant/components/nuki/lock.py index f2ca85c5896..7026ece890a 100644 --- a/homeassistant/components/nuki/lock.py +++ b/homeassistant/components/nuki/lock.py @@ -5,7 +5,10 @@ from pynuki import MODE_OPENER_CONTINUOUS import voluptuous as vol from homeassistant.components.lock import SUPPORT_OPEN, LockEntity +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 . import NukiEntity from .const import ( @@ -21,7 +24,9 @@ from .const import ( ) -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 Nuki lock platform.""" data = hass.data[NUKI_DOMAIN][entry.entry_id] coordinator = data[DATA_COORDINATOR] diff --git a/homeassistant/components/ozw/lock.py b/homeassistant/components/ozw/lock.py index 9cadb2862f1..ea6782c5c79 100644 --- a/homeassistant/components/ozw/lock.py +++ b/homeassistant/components/ozw/lock.py @@ -7,9 +7,11 @@ from openzwavemqtt.util.lock import clear_usercode, set_usercode import voluptuous as vol from homeassistant.components.lock import DOMAIN as LOCK_DOMAIN, LockEntity -from homeassistant.core import callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, callback 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 .const import DATA_UNSUBSCRIBE, DOMAIN from .entity import ZWaveDeviceEntity @@ -23,7 +25,11 @@ SERVICE_CLEAR_USERCODE = "clear_usercode" _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 Z-Wave lock from config entry.""" @callback diff --git a/homeassistant/components/sesame/lock.py b/homeassistant/components/sesame/lock.py index 261b2680499..99bb2d8a865 100644 --- a/homeassistant/components/sesame/lock.py +++ b/homeassistant/components/sesame/lock.py @@ -6,15 +6,22 @@ import voluptuous as vol from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import ATTR_BATTERY_LEVEL, ATTR_DEVICE_ID, CONF_API_KEY +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.typing import ConfigType +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType ATTR_SERIAL_NO = "serial" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({vol.Required(CONF_API_KEY): cv.string}) -def setup_platform(hass, config: ConfigType, add_entities, discovery_info=None): +def setup_platform( + hass: HomeAssistant, + config: ConfigType, + add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Sesame platform.""" api_key = config.get(CONF_API_KEY) diff --git a/homeassistant/components/smartthings/lock.py b/homeassistant/components/smartthings/lock.py index 4d4c48b1d9b..be3fe949061 100644 --- a/homeassistant/components/smartthings/lock.py +++ b/homeassistant/components/smartthings/lock.py @@ -6,6 +6,9 @@ from collections.abc import Sequence from pysmartthings import Attribute, Capability from homeassistant.components.lock import LockEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import SmartThingsEntity from .const import DATA_BROKERS, DOMAIN @@ -21,7 +24,11 @@ ST_LOCK_ATTR_MAP = { } -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 locks for a config entry.""" broker = hass.data[DOMAIN][DATA_BROKERS][config_entry.entry_id] async_add_entities( diff --git a/homeassistant/components/starline/lock.py b/homeassistant/components/starline/lock.py index 8ed6de0497d..20e389e48b5 100644 --- a/homeassistant/components/starline/lock.py +++ b/homeassistant/components/starline/lock.py @@ -1,12 +1,17 @@ """Support for StarLine lock.""" from homeassistant.components.lock import LockEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback from .account import StarlineAccount, StarlineDevice from .const import DOMAIN from .entity import StarlineEntity -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 StarLine lock.""" account: StarlineAccount = hass.data[DOMAIN][entry.entry_id] entities = [] diff --git a/homeassistant/components/volvooncall/lock.py b/homeassistant/components/volvooncall/lock.py index 6d9adcf1e1b..23f80a4fae5 100644 --- a/homeassistant/components/volvooncall/lock.py +++ b/homeassistant/components/volvooncall/lock.py @@ -1,10 +1,20 @@ """Support for Volvo On Call locks.""" +from __future__ import annotations + from homeassistant.components.lock import LockEntity +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from . import DATA_KEY, VolvoEntity -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 Volvo On Call lock.""" if discovery_info is None: return diff --git a/homeassistant/components/xiaomi_aqara/lock.py b/homeassistant/components/xiaomi_aqara/lock.py index b7167452b65..e21967a9f06 100644 --- a/homeassistant/components/xiaomi_aqara/lock.py +++ b/homeassistant/components/xiaomi_aqara/lock.py @@ -1,7 +1,9 @@ """Support for Xiaomi Aqara locks.""" from homeassistant.components.lock import LockEntity +from homeassistant.config_entries import ConfigEntry from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_call_later from . import XiaomiDevice @@ -17,7 +19,11 @@ ATTR_VERIFIED_WRONG_TIMES = "verified_wrong_times" UNLOCK_MAINTAIN_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: """Perform the setup for Xiaomi devices.""" entities = [] gateway = hass.data[DOMAIN][GATEWAYS_KEY][config_entry.entry_id] diff --git a/homeassistant/components/zwave/lock.py b/homeassistant/components/zwave/lock.py index 81e7c066b5d..06ce59a1f9e 100644 --- a/homeassistant/components/zwave/lock.py +++ b/homeassistant/components/zwave/lock.py @@ -4,9 +4,11 @@ import logging import voluptuous as vol from homeassistant.components.lock import DOMAIN, LockEntity -from homeassistant.core import ServiceCall, callback +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant, ServiceCall, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import ZWaveDeviceEntity, const @@ -157,7 +159,11 @@ CLEAR_USERCODE_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 Z-Wave Lock from Config Entry.""" @callback