Add new methods to DeviceAutomationActionProtocol (#72163)

* Add composite type

* Extend action protocol

* Drop return/raise
pull/72127/head
epenet 2022-05-19 18:23:23 +02:00 committed by GitHub
parent 3ece5965a8
commit 17bb503450
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 3 deletions

View File

@ -44,6 +44,8 @@ if TYPE_CHECKING:
]
# mypy: allow-untyped-calls, allow-untyped-defs
GetAutomationsResult = list[dict[str, Any]]
GetAutomationCapabilitiesResult = dict[str, vol.Schema]
DOMAIN = "device_automation"

View File

@ -1,6 +1,7 @@
"""Device action validator."""
from __future__ import annotations
from collections.abc import Awaitable
from typing import Any, Protocol, cast
import voluptuous as vol
@ -9,7 +10,12 @@ from homeassistant.const import CONF_DOMAIN
from homeassistant.core import Context, HomeAssistant
from homeassistant.helpers.typing import ConfigType
from . import DeviceAutomationType, async_get_device_automation_platform
from . import (
DeviceAutomationType,
GetAutomationCapabilitiesResult,
GetAutomationsResult,
async_get_device_automation_platform,
)
from .exceptions import InvalidDeviceAutomationConfig
@ -25,7 +31,6 @@ class DeviceAutomationActionProtocol(Protocol):
self, hass: HomeAssistant, config: ConfigType
) -> ConfigType:
"""Validate config."""
raise NotImplementedError
async def async_call_action_from_config(
self,
@ -35,7 +40,16 @@ class DeviceAutomationActionProtocol(Protocol):
context: Context | None,
) -> None:
"""Execute a device action."""
raise NotImplementedError
def async_get_action_capabilities(
self, hass: HomeAssistant, config: ConfigType
) -> GetAutomationCapabilitiesResult | Awaitable[GetAutomationCapabilitiesResult]:
"""List action capabilities."""
def async_get_actions(
self, hass: HomeAssistant, device_id: str
) -> GetAutomationsResult | Awaitable[GetAutomationsResult]:
"""List actions."""
async def async_validate_action_config(