diff --git a/homeassistant/components/august/lock.py b/homeassistant/components/august/lock.py index c993cf03b89..9269dc52c6a 100644 --- a/homeassistant/components/august/lock.py +++ b/homeassistant/components/august/lock.py @@ -1,5 +1,6 @@ """Support for August lock.""" import logging +from typing import Any from aiohttp import ClientResponseError from yalexs.activity import SOURCE_PUBNUB, ActivityType @@ -44,14 +45,14 @@ class AugustLock(AugustEntityMixin, RestoreEntity, LockEntity): self._attr_unique_id = f"{self._device_id:s}_lock" self._update_from_data() - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the device.""" if self._data.activity_stream.pubnub.connected: await self._data.async_lock_async(self._device_id, self._hyper_bridge) return await self._call_lock_operation(self._data.async_lock) - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the device.""" if self._data.activity_stream.pubnub.connected: await self._data.async_unlock_async(self._device_id, self._hyper_bridge) diff --git a/homeassistant/components/demo/lock.py b/homeassistant/components/demo/lock.py index 86188e8b935..c59dfad2fab 100644 --- a/homeassistant/components/demo/lock.py +++ b/homeassistant/components/demo/lock.py @@ -2,6 +2,7 @@ from __future__ import annotations import asyncio +from typing import Any from homeassistant.components.lock import LockEntity, LockEntityFeature from homeassistant.config_entries import ConfigEntry @@ -66,26 +67,26 @@ class DemoLock(LockEntity): self._jam_on_operation = jam_on_operation @property - def is_locking(self): + def is_locking(self) -> bool: """Return true if lock is locking.""" return self._state == STATE_LOCKING @property - def is_unlocking(self): + def is_unlocking(self) -> bool: """Return true if lock is unlocking.""" return self._state == STATE_UNLOCKING @property - def is_jammed(self): + def is_jammed(self) -> bool: """Return true if lock is jammed.""" return self._state == STATE_JAMMED @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._state == STATE_LOCKED - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the device.""" self._state = STATE_LOCKING self.async_write_ha_state() @@ -96,7 +97,7 @@ class DemoLock(LockEntity): self._state = STATE_LOCKED self.async_write_ha_state() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the device.""" self._state = STATE_UNLOCKING self.async_write_ha_state() @@ -104,7 +105,7 @@ class DemoLock(LockEntity): self._state = STATE_UNLOCKED self.async_write_ha_state() - async def async_open(self, **kwargs): + async def async_open(self, **kwargs: Any) -> None: """Open the door latch.""" self._state = STATE_UNLOCKED self.async_write_ha_state() diff --git a/homeassistant/components/fibaro/lock.py b/homeassistant/components/fibaro/lock.py index aed7017ba61..ac4ce658b65 100644 --- a/homeassistant/components/fibaro/lock.py +++ b/homeassistant/components/fibaro/lock.py @@ -1,6 +1,8 @@ """Support for Fibaro locks.""" from __future__ import annotations +from typing import Any + from homeassistant.components.lock import ENTITY_ID_FORMAT, LockEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform @@ -37,18 +39,18 @@ class FibaroLock(FibaroDevice, LockEntity): super().__init__(fibaro_device) self.entity_id = ENTITY_ID_FORMAT.format(self.ha_id) - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Lock the device.""" self.action("secure") self._state = True - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the device.""" self.action("unsecure") self._state = False @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if device is locked.""" return self._state diff --git a/homeassistant/components/homematic/lock.py b/homeassistant/components/homematic/lock.py index 32ee4698736..abca46ddf58 100644 --- a/homeassistant/components/homematic/lock.py +++ b/homeassistant/components/homematic/lock.py @@ -1,6 +1,8 @@ """Support for Homematic locks.""" from __future__ import annotations +from typing import Any + from homeassistant.components.lock import LockEntity, LockEntityFeature from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -33,19 +35,19 @@ class HMLock(HMDevice, LockEntity): _attr_supported_features = LockEntityFeature.OPEN @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if the lock is locked.""" return not bool(self._hm_get_state()) - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Lock the lock.""" self._hmdevice.lock() - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the lock.""" self._hmdevice.unlock() - def open(self, **kwargs): + def open(self, **kwargs: Any) -> None: """Open the door latch.""" self._hmdevice.open() diff --git a/homeassistant/components/keba/lock.py b/homeassistant/components/keba/lock.py index b7563ae9b8e..d0316b1e525 100644 --- a/homeassistant/components/keba/lock.py +++ b/homeassistant/components/keba/lock.py @@ -1,6 +1,8 @@ """Support for KEBA charging station switch.""" from __future__ import annotations +from typing import Any + from homeassistant.components.lock import LockEntity from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -51,15 +53,15 @@ class KebaLock(LockEntity): return f"{self._keba.device_name} {self._name}" @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._state - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock wallbox.""" await self._keba.async_stop() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock wallbox.""" await self._keba.async_start() diff --git a/homeassistant/components/kiwi/lock.py b/homeassistant/components/kiwi/lock.py index 3884045c9bc..bfd6b430c9f 100644 --- a/homeassistant/components/kiwi/lock.py +++ b/homeassistant/components/kiwi/lock.py @@ -2,6 +2,7 @@ from __future__ import annotations import logging +from typing import Any from kiwiki import KiwiClient, KiwiException import voluptuous as vol @@ -89,7 +90,7 @@ class KiwiLock(LockEntity): return name or specifier @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._state == STATE_LOCKED @@ -104,7 +105,7 @@ class KiwiLock(LockEntity): self._state = STATE_LOCKED self.async_write_ha_state() - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the device.""" try: diff --git a/homeassistant/components/mazda/lock.py b/homeassistant/components/mazda/lock.py index 4b51a9eb97e..bcd409d2faf 100644 --- a/homeassistant/components/mazda/lock.py +++ b/homeassistant/components/mazda/lock.py @@ -1,4 +1,8 @@ """Platform for Mazda lock integration.""" +from __future__ import annotations + +from typing import Any + from homeassistant.components.lock import LockEntity from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -36,17 +40,17 @@ class MazdaLock(MazdaEntity, LockEntity): self._attr_unique_id = self.vin @property - def is_locked(self): + def is_locked(self) -> bool | None: """Return true if lock is locked.""" return self.client.get_assumed_lock_state(self.vehicle_id) - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the vehicle doors.""" await self.client.lock_doors(self.vehicle_id) self.async_write_ha_state() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the vehicle doors.""" await self.client.unlock_doors(self.vehicle_id) diff --git a/homeassistant/components/mqtt/lock.py b/homeassistant/components/mqtt/lock.py index 862e76635f7..0bdb66ab48b 100644 --- a/homeassistant/components/mqtt/lock.py +++ b/homeassistant/components/mqtt/lock.py @@ -2,6 +2,7 @@ from __future__ import annotations import functools +from typing import Any import voluptuous as vol @@ -183,7 +184,7 @@ class MqttLock(MqttEntity, LockEntity): await subscription.async_subscribe_topics(self.hass, self._sub_state) @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._state @@ -197,7 +198,7 @@ class MqttLock(MqttEntity, LockEntity): """Flag supported features.""" return LockEntityFeature.OPEN if CONF_PAYLOAD_OPEN in self._config else 0 - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the device. This method is a coroutine. @@ -214,7 +215,7 @@ class MqttLock(MqttEntity, LockEntity): self._state = True self.async_write_ha_state() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the device. This method is a coroutine. @@ -231,7 +232,7 @@ class MqttLock(MqttEntity, LockEntity): self._state = False self.async_write_ha_state() - async def async_open(self, **kwargs): + async def async_open(self, **kwargs: Any) -> None: """Open the door latch. This method is a coroutine. diff --git a/homeassistant/components/nuki/lock.py b/homeassistant/components/nuki/lock.py index 6a39bea8cb6..765fc5f711f 100644 --- a/homeassistant/components/nuki/lock.py +++ b/homeassistant/components/nuki/lock.py @@ -1,5 +1,6 @@ """Nuki.io lock platform.""" from abc import ABC, abstractmethod +from typing import Any from pynuki.constants import MODE_OPENER_CONTINUOUS import voluptuous as vol @@ -92,15 +93,15 @@ class NukiDeviceEntity(NukiEntity, LockEntity, ABC): return super().available and self._nuki_device.state not in ERROR_STATES @abstractmethod - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Lock the device.""" @abstractmethod - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the device.""" @abstractmethod - def open(self, **kwargs): + def open(self, **kwargs: Any) -> None: """Open the door latch.""" @@ -112,15 +113,15 @@ class NukiLockEntity(NukiDeviceEntity): """Return true if lock is locked.""" return self._nuki_device.is_locked - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Lock the device.""" self._nuki_device.lock() - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the device.""" self._nuki_device.unlock() - def open(self, **kwargs): + def open(self, **kwargs: Any) -> None: """Open the door latch.""" self._nuki_device.unlatch() @@ -144,15 +145,15 @@ class NukiOpenerEntity(NukiDeviceEntity): or self._nuki_device.mode == MODE_OPENER_CONTINUOUS ) - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Disable ring-to-open.""" self._nuki_device.deactivate_rto() - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Enable ring-to-open.""" self._nuki_device.activate_rto() - def open(self, **kwargs): + def open(self, **kwargs: Any) -> None: """Buzz open the door.""" self._nuki_device.electric_strike_actuation() diff --git a/homeassistant/components/smartthings/lock.py b/homeassistant/components/smartthings/lock.py index be3fe949061..81866010667 100644 --- a/homeassistant/components/smartthings/lock.py +++ b/homeassistant/components/smartthings/lock.py @@ -2,6 +2,7 @@ from __future__ import annotations from collections.abc import Sequence +from typing import Any from pysmartthings import Attribute, Capability @@ -50,18 +51,18 @@ def get_capabilities(capabilities: Sequence[str]) -> Sequence[str] | None: class SmartThingsLock(SmartThingsEntity, LockEntity): """Define a SmartThings lock.""" - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the device.""" await self._device.lock(set_status=True) self.async_write_ha_state() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the device.""" await self._device.unlock(set_status=True) self.async_write_ha_state() @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._device.status.lock == ST_STATE_LOCKED diff --git a/homeassistant/components/starline/lock.py b/homeassistant/components/starline/lock.py index 20e389e48b5..48f91d89809 100644 --- a/homeassistant/components/starline/lock.py +++ b/homeassistant/components/starline/lock.py @@ -1,4 +1,6 @@ """Support for StarLine lock.""" +from typing import Any + from homeassistant.components.lock import LockEntity from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -68,10 +70,10 @@ class StarlineLock(StarlineEntity, LockEntity): """Return true if lock is locked.""" return self._device.car_state.get("arm") - def lock(self, **kwargs): + def lock(self, **kwargs: Any) -> None: """Lock the car.""" self._account.api.set_car_state(self._device.device_id, "arm", True) - def unlock(self, **kwargs): + def unlock(self, **kwargs: Any) -> None: """Unlock the car.""" self._account.api.set_car_state(self._device.device_id, "arm", False) diff --git a/homeassistant/components/subaru/lock.py b/homeassistant/components/subaru/lock.py index 3c619690e96..bf9d1a8793b 100644 --- a/homeassistant/components/subaru/lock.py +++ b/homeassistant/components/subaru/lock.py @@ -1,5 +1,6 @@ """Support for Subaru door locks.""" import logging +from typing import Any import voluptuous as vol @@ -68,7 +69,7 @@ class SubaruLock(LockEntity): self._attr_unique_id = f"{vin}_door_locks" self._attr_device_info = get_device_info(vehicle_info) - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Send the lock command.""" _LOGGER.debug("Locking doors for: %s", self.car_name) await async_call_remote_service( @@ -77,7 +78,7 @@ class SubaruLock(LockEntity): self.vehicle_info, ) - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Send the unlock command.""" _LOGGER.debug("Unlocking doors for: %s", self.car_name) await async_call_remote_service( diff --git a/homeassistant/components/template/lock.py b/homeassistant/components/template/lock.py index f76750124ed..3f83e628f71 100644 --- a/homeassistant/components/template/lock.py +++ b/homeassistant/components/template/lock.py @@ -1,6 +1,8 @@ """Support for locks which integrates with other components.""" from __future__ import annotations +from typing import Any + import voluptuous as vol from homeassistant.components.lock import ( @@ -95,22 +97,22 @@ class TemplateLock(TemplateEntity, LockEntity): return self._optimistic @property - def is_locked(self): + def is_locked(self) -> bool: """Return true if lock is locked.""" return self._state in ("true", STATE_ON, STATE_LOCKED) @property - def is_jammed(self): + def is_jammed(self) -> bool: """Return true if lock is jammed.""" return self._state == STATE_JAMMED @property - def is_unlocking(self): + def is_unlocking(self) -> bool: """Return true if lock is unlocking.""" return self._state == STATE_UNLOCKING @property - def is_locking(self): + def is_locking(self) -> bool: """Return true if lock is locking.""" return self._state == STATE_LOCKING @@ -138,14 +140,14 @@ class TemplateLock(TemplateEntity, LockEntity): ) await super().async_added_to_hass() - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the device.""" if self._optimistic: self._state = True self.async_write_ha_state() await self.async_run_script(self._command_lock, context=self._context) - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the device.""" if self._optimistic: self._state = False diff --git a/homeassistant/components/volvooncall/lock.py b/homeassistant/components/volvooncall/lock.py index 23f80a4fae5..5023749e622 100644 --- a/homeassistant/components/volvooncall/lock.py +++ b/homeassistant/components/volvooncall/lock.py @@ -1,6 +1,8 @@ """Support for Volvo On Call locks.""" from __future__ import annotations +from typing import Any + from homeassistant.components.lock import LockEntity from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -30,10 +32,10 @@ class VolvoLock(VolvoEntity, LockEntity): """Return true if lock is locked.""" return self.instrument.is_locked - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the car.""" await self.instrument.lock() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the car.""" await self.instrument.unlock() diff --git a/homeassistant/components/zha/lock.py b/homeassistant/components/zha/lock.py index 1ebb10cacb6..b26d7087b75 100644 --- a/homeassistant/components/zha/lock.py +++ b/homeassistant/components/zha/lock.py @@ -1,5 +1,6 @@ """Locks on Zigbee Home Automation networks.""" import functools +from typing import Any import voluptuous as vol from zigpy.zcl.foundation import Status @@ -119,7 +120,7 @@ class ZhaDoorLock(ZhaEntity, LockEntity): """Return state attributes.""" return self.state_attributes - async def async_lock(self, **kwargs): + async def async_lock(self, **kwargs: Any) -> None: """Lock the lock.""" result = await self._doorlock_channel.lock_door() if isinstance(result, Exception) or result[0] is not Status.SUCCESS: @@ -127,7 +128,7 @@ class ZhaDoorLock(ZhaEntity, LockEntity): return self.async_write_ha_state() - async def async_unlock(self, **kwargs): + async def async_unlock(self, **kwargs: Any) -> None: """Unlock the lock.""" result = await self._doorlock_channel.unlock_door() if isinstance(result, Exception) or result[0] is not Status.SUCCESS: