Add transition support to scenes, cleanup blocking parameter (#34434)

This commit is contained in:
Franck Nijhof 2020-04-21 03:07:50 +02:00 committed by GitHub
parent 19be31d13a
commit bc5a2da7b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 547 additions and 229 deletions

View file

@ -1,7 +1,7 @@
"""Reproduce an Input datetime state."""
import asyncio
import logging
from typing import Iterable, Optional
from typing import Any, Dict, Iterable, Optional
from homeassistant.const import ATTR_ENTITY_ID
from homeassistant.core import Context, State
@ -40,7 +40,11 @@ def is_valid_time(string: str) -> bool:
async def _async_reproduce_state(
hass: HomeAssistantType, state: State, context: Optional[Context] = None
hass: HomeAssistantType,
state: State,
*,
context: Optional[Context] = None,
reproduce_options: Optional[Dict[str, Any]] = None,
) -> None:
"""Reproduce a single state."""
cur_state = hass.states.get(state.entity_id)
@ -97,9 +101,18 @@ async def _async_reproduce_state(
async def async_reproduce_states(
hass: HomeAssistantType, states: Iterable[State], context: Optional[Context] = None
hass: HomeAssistantType,
states: Iterable[State],
*,
context: Optional[Context] = None,
reproduce_options: Optional[Dict[str, Any]] = None,
) -> None:
"""Reproduce Input datetime states."""
await asyncio.gather(
*(_async_reproduce_state(hass, state, context) for state in states)
*(
_async_reproduce_state(
hass, state, context=context, reproduce_options=reproduce_options
)
for state in states
)
)