mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 09:47:52 +00:00
Fix and enable type checks in Rituals Perfume Genie (#49947)
This commit is contained in:
parent
c063f14c24
commit
a0feee083c
@ -41,7 +41,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
|
||||
for device in account_devices:
|
||||
hublot = device.hub_data[HUBLOT]
|
||||
|
||||
coordinator = RitualsPerufmeGenieDataUpdateCoordinator(hass, device)
|
||||
coordinator = RitualsDataUpdateCoordinator(hass, device)
|
||||
await coordinator.async_refresh()
|
||||
|
||||
hass.data[DOMAIN][entry.entry_id][DEVICES][hublot] = device
|
||||
@ -61,7 +61,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
|
||||
return unload_ok
|
||||
|
||||
|
||||
class RitualsPerufmeGenieDataUpdateCoordinator(DataUpdateCoordinator):
|
||||
class RitualsDataUpdateCoordinator(DataUpdateCoordinator):
|
||||
"""Class to manage fetching Rituals Perufme Genie device data from single endpoint."""
|
||||
|
||||
def __init__(self, hass: HomeAssistant, device: Diffuser):
|
||||
|
@ -11,8 +11,8 @@ from homeassistant.components.binary_sensor import (
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from . import RitualsDataUpdateCoordinator
|
||||
from .const import COORDINATORS, DEVICES, DOMAIN
|
||||
from .entity import DiffuserEntity
|
||||
|
||||
@ -38,7 +38,9 @@ async def async_setup_entry(
|
||||
class DiffuserBatteryChargingBinarySensor(DiffuserEntity, BinarySensorEntity):
|
||||
"""Representation of a diffuser battery charging binary sensor."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the battery charging binary sensor."""
|
||||
super().__init__(diffuser, coordinator, CHARGING_SUFFIX)
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
"""Base class for Rituals Perfume Genie diffuser entity."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from pyrituals import Diffuser
|
||||
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from . import RitualsDataUpdateCoordinator
|
||||
from .const import ATTRIBUTES, DOMAIN, HUBLOT, SENSORS
|
||||
|
||||
MANUFACTURER = "Rituals Cosmetics"
|
||||
@ -23,8 +23,13 @@ AVAILABLE_STATE = 1
|
||||
class DiffuserEntity(CoordinatorEntity):
|
||||
"""Representation of a diffuser entity."""
|
||||
|
||||
coordinator: RitualsDataUpdateCoordinator
|
||||
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: CoordinatorEntity, entity_suffix: str
|
||||
self,
|
||||
diffuser: Diffuser,
|
||||
coordinator: RitualsDataUpdateCoordinator,
|
||||
entity_suffix: str,
|
||||
) -> None:
|
||||
"""Init from config, hookup diffuser and coordinator."""
|
||||
super().__init__(coordinator)
|
||||
@ -49,7 +54,7 @@ class DiffuserEntity(CoordinatorEntity):
|
||||
return super().available and self._diffuser.hub_data[STATUS] == AVAILABLE_STATE
|
||||
|
||||
@property
|
||||
def device_info(self) -> dict[str, Any]:
|
||||
def device_info(self) -> DeviceInfo:
|
||||
"""Return information about the device."""
|
||||
return {
|
||||
"name": self._hubname,
|
||||
|
@ -1,4 +1,6 @@
|
||||
"""Support for Rituals Perfume Genie sensors."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Callable
|
||||
|
||||
from pyrituals import Diffuser
|
||||
@ -10,8 +12,8 @@ from homeassistant.const import (
|
||||
PERCENTAGE,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from . import RitualsDataUpdateCoordinator
|
||||
from .const import COORDINATORS, DEVICES, DOMAIN, ID, SENSORS
|
||||
from .entity import DiffuserEntity
|
||||
|
||||
@ -38,7 +40,7 @@ async def async_setup_entry(
|
||||
"""Set up the diffuser sensors."""
|
||||
diffusers = hass.data[DOMAIN][config_entry.entry_id][DEVICES]
|
||||
coordinators = hass.data[DOMAIN][config_entry.entry_id][COORDINATORS]
|
||||
entities = []
|
||||
entities: list[DiffuserEntity] = []
|
||||
for hublot, diffuser in diffusers.items():
|
||||
coordinator = coordinators[hublot]
|
||||
entities.append(DiffuserPerfumeSensor(diffuser, coordinator))
|
||||
@ -53,7 +55,9 @@ async def async_setup_entry(
|
||||
class DiffuserPerfumeSensor(DiffuserEntity):
|
||||
"""Representation of a diffuser perfume sensor."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the perfume sensor."""
|
||||
super().__init__(diffuser, coordinator, PERFUME_SUFFIX)
|
||||
|
||||
@ -73,7 +77,9 @@ class DiffuserPerfumeSensor(DiffuserEntity):
|
||||
class DiffuserFillSensor(DiffuserEntity):
|
||||
"""Representation of a diffuser fill sensor."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the fill sensor."""
|
||||
super().__init__(diffuser, coordinator, FILL_SUFFIX)
|
||||
|
||||
@ -93,7 +99,9 @@ class DiffuserFillSensor(DiffuserEntity):
|
||||
class DiffuserBatterySensor(DiffuserEntity):
|
||||
"""Representation of a diffuser battery sensor."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the battery sensor."""
|
||||
super().__init__(diffuser, coordinator, BATTERY_SUFFIX)
|
||||
|
||||
@ -116,7 +124,9 @@ class DiffuserBatterySensor(DiffuserEntity):
|
||||
class DiffuserWifiSensor(DiffuserEntity):
|
||||
"""Representation of a diffuser wifi sensor."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the wifi sensor."""
|
||||
super().__init__(diffuser, coordinator, WIFI_SUFFIX)
|
||||
|
||||
|
@ -8,8 +8,8 @@ from pyrituals import Diffuser
|
||||
from homeassistant.components.switch import SwitchEntity
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from . import RitualsDataUpdateCoordinator
|
||||
from .const import ATTRIBUTES, COORDINATORS, DEVICES, DOMAIN
|
||||
from .entity import DiffuserEntity
|
||||
|
||||
@ -37,7 +37,9 @@ async def async_setup_entry(
|
||||
class DiffuserSwitch(SwitchEntity, DiffuserEntity):
|
||||
"""Representation of a diffuser switch."""
|
||||
|
||||
def __init__(self, diffuser: Diffuser, coordinator: CoordinatorEntity) -> None:
|
||||
def __init__(
|
||||
self, diffuser: Diffuser, coordinator: RitualsDataUpdateCoordinator
|
||||
) -> None:
|
||||
"""Initialize the diffuser switch."""
|
||||
super().__init__(diffuser, coordinator, "")
|
||||
self._is_on = self._diffuser.is_on
|
||||
|
3
mypy.ini
3
mypy.ini
@ -1125,9 +1125,6 @@ ignore_errors = true
|
||||
[mypy-homeassistant.components.ring.*]
|
||||
ignore_errors = true
|
||||
|
||||
[mypy-homeassistant.components.rituals_perfume_genie.*]
|
||||
ignore_errors = true
|
||||
|
||||
[mypy-homeassistant.components.roku.*]
|
||||
ignore_errors = true
|
||||
|
||||
|
@ -178,7 +178,6 @@ IGNORED_MODULES: Final[list[str]] = [
|
||||
"homeassistant.components.recorder.*",
|
||||
"homeassistant.components.reddit.*",
|
||||
"homeassistant.components.ring.*",
|
||||
"homeassistant.components.rituals_perfume_genie.*",
|
||||
"homeassistant.components.roku.*",
|
||||
"homeassistant.components.rpi_power.*",
|
||||
"homeassistant.components.ruckus_unleashed.*",
|
||||
|
Loading…
x
Reference in New Issue
Block a user