Adjust device_automation type hints in rfxtrx (#72138)

This commit is contained in:
epenet 2022-05-23 14:32:47 +02:00 committed by GitHub
parent 6ec755a79d
commit dfc8dee2d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 8 deletions

View file

@ -9,6 +9,7 @@ from homeassistant.components.device_automation.exceptions import (
from homeassistant.const import CONF_DEVICE_ID, CONF_DOMAIN, CONF_TYPE from homeassistant.const import CONF_DEVICE_ID, CONF_DOMAIN, CONF_TYPE
from homeassistant.core import Context, HomeAssistant from homeassistant.core import Context, HomeAssistant
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.typing import ConfigType, TemplateVarsType
from . import DATA_RFXOBJECT, DOMAIN from . import DATA_RFXOBJECT, DOMAIN
from .helpers import async_get_device_object from .helpers import async_get_device_object
@ -37,7 +38,9 @@ ACTION_SCHEMA = cv.DEVICE_ACTION_BASE_SCHEMA.extend(
) )
async def async_get_actions(hass: HomeAssistant, device_id: str) -> list[dict]: async def async_get_actions(
hass: HomeAssistant, device_id: str
) -> list[dict[str, str]]:
"""List device actions for RFXCOM RFXtrx devices.""" """List device actions for RFXCOM RFXtrx devices."""
try: try:
@ -48,8 +51,8 @@ async def async_get_actions(hass: HomeAssistant, device_id: str) -> list[dict]:
actions = [] actions = []
for action_type in ACTION_TYPES: for action_type in ACTION_TYPES:
if hasattr(device, action_type): if hasattr(device, action_type):
values = getattr(device, ACTION_SELECTION[action_type], {}) data: dict[int, str] = getattr(device, ACTION_SELECTION[action_type], {})
for value in values.values(): for value in data.values():
actions.append( actions.append(
{ {
CONF_DEVICE_ID: device_id, CONF_DEVICE_ID: device_id,
@ -69,7 +72,9 @@ def _get_commands(hass, device_id, action_type):
return commands, send_fun return commands, send_fun
async def async_validate_action_config(hass, config): async def async_validate_action_config(
hass: HomeAssistant, config: ConfigType
) -> ConfigType:
"""Validate config.""" """Validate config."""
config = ACTION_SCHEMA(config) config = ACTION_SCHEMA(config)
commands, _ = _get_commands(hass, config[CONF_DEVICE_ID], config[CONF_TYPE]) commands, _ = _get_commands(hass, config[CONF_DEVICE_ID], config[CONF_TYPE])
@ -84,7 +89,10 @@ async def async_validate_action_config(hass, config):
async def async_call_action_from_config( async def async_call_action_from_config(
hass: HomeAssistant, config: dict, variables: dict, context: Context | None hass: HomeAssistant,
config: ConfigType,
variables: TemplateVarsType,
context: Context | None,
) -> None: ) -> None:
"""Execute a device action.""" """Execute a device action."""
config = ACTION_SCHEMA(config) config = ACTION_SCHEMA(config)

View file

@ -47,13 +47,15 @@ TRIGGER_SCHEMA = DEVICE_TRIGGER_BASE_SCHEMA.extend(
) )
async def async_get_triggers(hass: HomeAssistant, device_id: str) -> list[dict]: async def async_get_triggers(
hass: HomeAssistant, device_id: str
) -> list[dict[str, str]]:
"""List device triggers for RFXCOM RFXtrx devices.""" """List device triggers for RFXCOM RFXtrx devices."""
device = async_get_device_object(hass, device_id) device = async_get_device_object(hass, device_id)
triggers = [] triggers = []
for conf_type in TRIGGER_TYPES: for conf_type in TRIGGER_TYPES:
data = getattr(device, TRIGGER_SELECTION[conf_type], {}) data: dict[int, str] = getattr(device, TRIGGER_SELECTION[conf_type], {})
for command in data.values(): for command in data.values():
triggers.append( triggers.append(
{ {
@ -67,7 +69,9 @@ async def async_get_triggers(hass: HomeAssistant, device_id: str) -> list[dict]:
return triggers return triggers
async def async_validate_trigger_config(hass, config): async def async_validate_trigger_config(
hass: HomeAssistant, config: ConfigType
) -> ConfigType:
"""Validate config.""" """Validate config."""
config = TRIGGER_SCHEMA(config) config = TRIGGER_SCHEMA(config)