Improve type hint in zwave_js trigger (#88597)

Imrpove type hint in zwave_js trigger
This commit is contained in:
epenet 2023-02-22 13:39:28 +01:00 committed by GitHub
parent 6d9411b8a1
commit 3c1e62aeef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,12 +1,15 @@
"""Z-Wave JS trigger dispatcher."""
from __future__ import annotations
from types import ModuleType
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 event, value_updated
@ -17,7 +20,7 @@ TRIGGERS = {
}
def _get_trigger_platform(config: ConfigType) -> ModuleType:
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:
@ -31,12 +34,9 @@ async def async_validate_trigger_config(
"""Validate config."""
platform = _get_trigger_platform(config)
if hasattr(platform, "async_validate_trigger_config"):
return cast(
ConfigType,
await getattr(platform, "async_validate_trigger_config")(hass, config),
)
assert hasattr(platform, "TRIGGER_SCHEMA")
return cast(ConfigType, getattr(platform, "TRIGGER_SCHEMA")(config))
return await platform.async_validate_trigger_config(hass, config)
return cast(ConfigType, platform.TRIGGER_SCHEMA(config))
async def async_attach_trigger(
@ -47,10 +47,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)