mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Correct errors found on post merge review in philips_js (#46428)
* Correct missed review changes * Adjust return value for device trigger * Drop cannot connect * Always assume there is a unique id * No need to yield * Update homeassistant/components/philips_js/media_player.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Move typing to init * Adjust typing instead of returning lambda * Explicity return None * Coerce into int Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
ee04473e85
commit
a67b598971
@ -64,11 +64,10 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
|
|||||||
class PluggableAction:
|
class PluggableAction:
|
||||||
"""A pluggable action handler."""
|
"""A pluggable action handler."""
|
||||||
|
|
||||||
_actions: Dict[Any, AutomationActionType] = {}
|
|
||||||
|
|
||||||
def __init__(self, update: Callable[[], None]):
|
def __init__(self, update: Callable[[], None]):
|
||||||
"""Initialize."""
|
"""Initialize."""
|
||||||
self._update = update
|
self._update = update
|
||||||
|
self._actions: Dict[Any, AutomationActionType] = {}
|
||||||
|
|
||||||
def __bool__(self):
|
def __bool__(self):
|
||||||
"""Return if we have something attached."""
|
"""Return if we have something attached."""
|
||||||
@ -101,8 +100,6 @@ class PluggableAction:
|
|||||||
class PhilipsTVDataUpdateCoordinator(DataUpdateCoordinator[None]):
|
class PhilipsTVDataUpdateCoordinator(DataUpdateCoordinator[None]):
|
||||||
"""Coordinator to update data."""
|
"""Coordinator to update data."""
|
||||||
|
|
||||||
api: PhilipsTV
|
|
||||||
|
|
||||||
def __init__(self, hass, api: PhilipsTV) -> None:
|
def __init__(self, hass, api: PhilipsTV) -> None:
|
||||||
"""Set up the coordinator."""
|
"""Set up the coordinator."""
|
||||||
self.api = api
|
self.api = api
|
||||||
@ -113,19 +110,19 @@ class PhilipsTVDataUpdateCoordinator(DataUpdateCoordinator[None]):
|
|||||||
|
|
||||||
self.turn_on = PluggableAction(_update_listeners)
|
self.turn_on = PluggableAction(_update_listeners)
|
||||||
|
|
||||||
async def _async_update():
|
|
||||||
try:
|
|
||||||
await self.hass.async_add_executor_job(self.api.update)
|
|
||||||
except ConnectionFailure:
|
|
||||||
pass
|
|
||||||
|
|
||||||
super().__init__(
|
super().__init__(
|
||||||
hass,
|
hass,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
name=DOMAIN,
|
name=DOMAIN,
|
||||||
update_method=_async_update,
|
|
||||||
update_interval=timedelta(seconds=30),
|
update_interval=timedelta(seconds=30),
|
||||||
request_refresh_debouncer=Debouncer(
|
request_refresh_debouncer=Debouncer(
|
||||||
hass, LOGGER, cooldown=2.0, immediate=False
|
hass, LOGGER, cooldown=2.0, immediate=False
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def _async_update_data(self):
|
||||||
|
"""Fetch the latest data from the source."""
|
||||||
|
try:
|
||||||
|
await self.hass.async_add_executor_job(self.api.update)
|
||||||
|
except ConnectionFailure:
|
||||||
|
pass
|
||||||
|
@ -5,7 +5,7 @@ from typing import Any, Dict, Optional, TypedDict
|
|||||||
from haphilipsjs import ConnectionFailure, PhilipsTV
|
from haphilipsjs import ConnectionFailure, PhilipsTV
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries, core, exceptions
|
from homeassistant import config_entries, core
|
||||||
from homeassistant.const import CONF_API_VERSION, CONF_HOST
|
from homeassistant.const import CONF_API_VERSION, CONF_HOST
|
||||||
|
|
||||||
from .const import DOMAIN # pylint:disable=unused-import
|
from .const import DOMAIN # pylint:disable=unused-import
|
||||||
@ -84,7 +84,3 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
return self.async_show_form(step_id="user", data_schema=schema, errors=errors)
|
return self.async_show_form(step_id="user", data_schema=schema, errors=errors)
|
||||||
|
|
||||||
|
|
||||||
class CannotConnect(exceptions.HomeAssistantError):
|
|
||||||
"""Error to indicate we cannot connect."""
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
"""Provides device automations for control of device."""
|
"""Provides device automations for control of device."""
|
||||||
from typing import List
|
from typing import List, Optional
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ async def async_attach_trigger(
|
|||||||
config: ConfigType,
|
config: ConfigType,
|
||||||
action: AutomationActionType,
|
action: AutomationActionType,
|
||||||
automation_info: dict,
|
automation_info: dict,
|
||||||
) -> CALLBACK_TYPE:
|
) -> Optional[CALLBACK_TYPE]:
|
||||||
"""Attach a trigger."""
|
"""Attach a trigger."""
|
||||||
registry: DeviceRegistry = await async_get_registry(hass)
|
registry: DeviceRegistry = await async_get_registry(hass)
|
||||||
if config[CONF_TYPE] == TRIGGER_TYPE_TURN_ON:
|
if config[CONF_TYPE] == TRIGGER_TYPE_TURN_ON:
|
||||||
@ -63,3 +63,5 @@ async def async_attach_trigger(
|
|||||||
)
|
)
|
||||||
if coordinator:
|
if coordinator:
|
||||||
return coordinator.turn_on.async_attach(action, variables)
|
return coordinator.turn_on.async_attach(action, variables)
|
||||||
|
|
||||||
|
return None
|
||||||
|
@ -57,7 +57,7 @@ SUPPORT_PHILIPS_JS = (
|
|||||||
|
|
||||||
CONF_ON_ACTION = "turn_on_action"
|
CONF_ON_ACTION = "turn_on_action"
|
||||||
|
|
||||||
DEFAULT_API_VERSION = "1"
|
DEFAULT_API_VERSION = 1
|
||||||
|
|
||||||
PREFIX_SEPARATOR = ": "
|
PREFIX_SEPARATOR = ": "
|
||||||
PREFIX_SOURCE = "Input"
|
PREFIX_SOURCE = "Input"
|
||||||
@ -72,7 +72,9 @@ PLATFORM_SCHEMA = vol.All(
|
|||||||
{
|
{
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Remove(CONF_NAME): cv.string,
|
vol.Remove(CONF_NAME): cv.string,
|
||||||
vol.Optional(CONF_API_VERSION, default=DEFAULT_API_VERSION): cv.string,
|
vol.Optional(CONF_API_VERSION, default=DEFAULT_API_VERSION): vol.Coerce(
|
||||||
|
int
|
||||||
|
),
|
||||||
vol.Remove(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Remove(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
@ -83,7 +85,7 @@ def _inverted(data):
|
|||||||
return {v: k for k, v in data.items()}
|
return {v: k for k, v in data.items()}
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_entities, discovery_info=None):
|
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None):
|
||||||
"""Set up the Philips TV platform."""
|
"""Set up the Philips TV platform."""
|
||||||
hass.async_create_task(
|
hass.async_create_task(
|
||||||
hass.config_entries.flow.async_init(
|
hass.config_entries.flow.async_init(
|
||||||
@ -106,7 +108,7 @@ async def async_setup_entry(
|
|||||||
PhilipsTVMediaPlayer(
|
PhilipsTVMediaPlayer(
|
||||||
coordinator,
|
coordinator,
|
||||||
config_entry.data[CONF_SYSTEM],
|
config_entry.data[CONF_SYSTEM],
|
||||||
config_entry.unique_id or config_entry.entry_id,
|
config_entry.unique_id,
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
@ -50,7 +50,7 @@ async def mock_entity(hass, mock_device_reg, mock_config_entry):
|
|||||||
"""Get standard player."""
|
"""Get standard player."""
|
||||||
assert await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
assert await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
yield MOCK_ENTITY_ID
|
return MOCK_ENTITY_ID
|
||||||
|
|
||||||
|
|
||||||
@fixture
|
@fixture
|
||||||
|
Loading…
x
Reference in New Issue
Block a user