From fdc06c2fc2741232418be9454c66ad0e3094d4bb Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 24 Feb 2023 16:54:02 +0100 Subject: [PATCH] Improve type hint in webostv trigger (#88599) Improve type hint in webostv trigger --- homeassistant/components/webostv/trigger.py | 20 +++++++++---------- .../components/webostv/triggers/__init__.py | 11 ---------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/homeassistant/components/webostv/trigger.py b/homeassistant/components/webostv/trigger.py index 5441917cc31..4d237993f95 100644 --- a/homeassistant/components/webostv/trigger.py +++ b/homeassistant/components/webostv/trigger.py @@ -5,24 +5,28 @@ from typing import cast from homeassistant.const import CONF_PLATFORM from homeassistant.core import CALLBACK_TYPE, HomeAssistant -from homeassistant.helpers.trigger import TriggerActionType, TriggerInfo +from homeassistant.helpers.trigger import ( + TriggerActionType, + TriggerInfo, + TriggerProtocol, +) from homeassistant.helpers.typing import ConfigType -from .triggers import TriggersPlatformModule, turn_on +from .triggers import turn_on TRIGGERS = { "turn_on": turn_on, } -def _get_trigger_platform(config: ConfigType) -> TriggersPlatformModule: +def _get_trigger_platform(config: ConfigType) -> TriggerProtocol: """Return trigger platform.""" platform_split = config[CONF_PLATFORM].split(".", maxsplit=1) if len(platform_split) < 2 or platform_split[1] not in TRIGGERS: raise ValueError( f"Unknown webOS Smart TV trigger platform {config[CONF_PLATFORM]}" ) - return cast(TriggersPlatformModule, TRIGGERS[platform_split[1]]) + return cast(TriggerProtocol, TRIGGERS[platform_split[1]]) async def async_validate_trigger_config( @@ -41,10 +45,4 @@ async def async_attach_trigger( ) -> CALLBACK_TYPE: """Attach trigger of specified platform.""" platform = _get_trigger_platform(config) - assert hasattr(platform, "async_attach_trigger") - return cast( - CALLBACK_TYPE, - await getattr(platform, "async_attach_trigger")( - hass, config, action, trigger_info - ), - ) + return await platform.async_attach_trigger(hass, config, action, trigger_info) diff --git a/homeassistant/components/webostv/triggers/__init__.py b/homeassistant/components/webostv/triggers/__init__.py index 710caffef7a..d8c5a28ef3f 100644 --- a/homeassistant/components/webostv/triggers/__init__.py +++ b/homeassistant/components/webostv/triggers/__init__.py @@ -1,12 +1 @@ """webOS Smart TV triggers.""" -from __future__ import annotations - -from typing import Protocol - -import voluptuous as vol - - -class TriggersPlatformModule(Protocol): - """Protocol type for the triggers platform.""" - - TRIGGER_SCHEMA: vol.Schema