Improve ifttt typing (#108308)

This commit is contained in:
Marc Mueller 2024-01-19 13:45:59 +01:00 committed by GitHub
parent 8c71abe421
commit 42154bd684
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 20 deletions

View File

@ -1,8 +1,11 @@
"""Support to trigger Maker IFTTT recipes.""" """Support to trigger Maker IFTTT recipes."""
from __future__ import annotations
from http import HTTPStatus from http import HTTPStatus
import json import json
import logging import logging
from aiohttp import web
import pyfttt import pyfttt
import requests import requests
import voluptuous as vol import voluptuous as vol
@ -91,7 +94,9 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
return True return True
async def handle_webhook(hass, webhook_id, request): async def handle_webhook(
hass: HomeAssistant, webhook_id: str, request: web.Request
) -> None:
"""Handle webhook callback.""" """Handle webhook callback."""
body = await request.text() body = await request.text()
try: try:

View File

@ -81,14 +81,14 @@ def setup_platform(
if DATA_IFTTT_ALARM not in hass.data: if DATA_IFTTT_ALARM not in hass.data:
hass.data[DATA_IFTTT_ALARM] = [] hass.data[DATA_IFTTT_ALARM] = []
name = config.get(CONF_NAME) name: str = config[CONF_NAME]
code = config.get(CONF_CODE) code: str | None = config.get(CONF_CODE)
code_arm_required = config.get(CONF_CODE_ARM_REQUIRED) code_arm_required: bool = config[CONF_CODE_ARM_REQUIRED]
event_away = config.get(CONF_EVENT_AWAY) event_away: str = config[CONF_EVENT_AWAY]
event_home = config.get(CONF_EVENT_HOME) event_home: str = config[CONF_EVENT_HOME]
event_night = config.get(CONF_EVENT_NIGHT) event_night: str = config[CONF_EVENT_NIGHT]
event_disarm = config.get(CONF_EVENT_DISARM) event_disarm: str = config[CONF_EVENT_DISARM]
optimistic = config.get(CONF_OPTIMISTIC) optimistic: bool = config[CONF_OPTIMISTIC]
alarmpanel = IFTTTAlarmPanel( alarmpanel = IFTTTAlarmPanel(
name, name,
@ -135,15 +135,15 @@ class IFTTTAlarmPanel(AlarmControlPanelEntity):
def __init__( def __init__(
self, self,
name, name: str,
code, code: str | None,
code_arm_required, code_arm_required: bool,
event_away, event_away: str,
event_home, event_home: str,
event_night, event_night: str,
event_disarm, event_disarm: str,
optimistic, optimistic: bool,
): ) -> None:
"""Initialize the alarm control panel.""" """Initialize the alarm control panel."""
self._attr_name = name self._attr_name = name
self._code = code self._code = code
@ -187,7 +187,7 @@ class IFTTTAlarmPanel(AlarmControlPanelEntity):
return return
self.set_alarm_state(self._event_night, STATE_ALARM_ARMED_NIGHT) self.set_alarm_state(self._event_night, STATE_ALARM_ARMED_NIGHT)
def set_alarm_state(self, event, state): def set_alarm_state(self, event: str, state: str) -> None:
"""Call the IFTTT trigger service to change the alarm state.""" """Call the IFTTT trigger service to change the alarm state."""
data = {ATTR_EVENT: event} data = {ATTR_EVENT: event}
@ -196,7 +196,7 @@ class IFTTTAlarmPanel(AlarmControlPanelEntity):
if self._optimistic: if self._optimistic:
self._attr_state = state self._attr_state = state
def push_alarm_state(self, value): def push_alarm_state(self, value: str) -> None:
"""Push the alarm state to the given value.""" """Push the alarm state to the given value."""
if value in ALLOWED_STATES: if value in ALLOWED_STATES:
_LOGGER.debug("Pushed the alarm state to %s", value) _LOGGER.debug("Pushed the alarm state to %s", value)