Use generator expression in poolsense (#117582)

This commit is contained in:
Joost Lekkerkerker 2024-05-18 13:10:06 +02:00 committed by GitHub
parent 10dfa91e54
commit c38539b368
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 22 deletions

View file

@ -7,7 +7,6 @@ from homeassistant.components.binary_sensor import (
BinarySensorEntity, BinarySensorEntity,
BinarySensorEntityDescription, BinarySensorEntityDescription,
) )
from homeassistant.const import CONF_EMAIL
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -36,12 +35,10 @@ async def async_setup_entry(
"""Defer sensor setup to the shared sensor module.""" """Defer sensor setup to the shared sensor module."""
coordinator = config_entry.runtime_data coordinator = config_entry.runtime_data
entities = [ async_add_entities(
PoolSenseBinarySensor(coordinator, config_entry.data[CONF_EMAIL], description) PoolSenseBinarySensor(coordinator, description)
for description in BINARY_SENSOR_TYPES for description in BINARY_SENSOR_TYPES
] )
async_add_entities(entities, False)
class PoolSenseBinarySensor(PoolSenseEntity, BinarySensorEntity): class PoolSenseBinarySensor(PoolSenseEntity, BinarySensorEntity):

View file

@ -1,28 +1,38 @@
"""DataUpdateCoordinator for poolsense integration.""" """DataUpdateCoordinator for poolsense integration."""
from __future__ import annotations
import asyncio import asyncio
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import TYPE_CHECKING
from poolsense import PoolSense from poolsense import PoolSense
from poolsense.exceptions import PoolSenseError from poolsense.exceptions import PoolSenseError
from homeassistant.const import CONF_EMAIL
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN from .const import DOMAIN
if TYPE_CHECKING:
from . import PoolSenseConfigEntry
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
class PoolSenseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, StateType]]): class PoolSenseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, StateType]]):
"""Define an object to hold PoolSense data.""" """Define an object to hold PoolSense data."""
config_entry: PoolSenseConfigEntry
def __init__(self, hass: HomeAssistant, poolsense: PoolSense) -> None: def __init__(self, hass: HomeAssistant, poolsense: PoolSense) -> None:
"""Initialize.""" """Initialize."""
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=timedelta(hours=1)) super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=timedelta(hours=1))
self.poolsense = poolsense self.poolsense = poolsense
self.email = self.config_entry.data[CONF_EMAIL]
async def _async_update_data(self) -> dict[str, StateType]: async def _async_update_data(self) -> dict[str, StateType]:
"""Update data via library.""" """Update data via library."""

View file

@ -17,14 +17,13 @@ class PoolSenseEntity(CoordinatorEntity[PoolSenseDataUpdateCoordinator]):
def __init__( def __init__(
self, self,
coordinator: PoolSenseDataUpdateCoordinator, coordinator: PoolSenseDataUpdateCoordinator,
email: str,
description: EntityDescription, description: EntityDescription,
) -> None: ) -> None:
"""Initialize poolsense sensor.""" """Initialize poolsense entity."""
super().__init__(coordinator) super().__init__(coordinator)
self.entity_description = description self.entity_description = description
self._attr_unique_id = f"{email}-{description.key}" self._attr_unique_id = f"{coordinator.email}-{description.key}"
self._attr_device_info = DeviceInfo( self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, email)}, identifiers={(DOMAIN, coordinator.email)},
model="PoolSense", model="PoolSense",
) )

View file

@ -7,12 +7,7 @@ from homeassistant.components.sensor import (
SensorEntity, SensorEntity,
SensorEntityDescription, SensorEntityDescription,
) )
from homeassistant.const import ( from homeassistant.const import PERCENTAGE, UnitOfElectricPotential, UnitOfTemperature
CONF_EMAIL,
PERCENTAGE,
UnitOfElectricPotential,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
@ -75,12 +70,9 @@ async def async_setup_entry(
"""Defer sensor setup to the shared sensor module.""" """Defer sensor setup to the shared sensor module."""
coordinator = config_entry.runtime_data coordinator = config_entry.runtime_data
entities = [ async_add_entities(
PoolSenseSensor(coordinator, config_entry.data[CONF_EMAIL], description) PoolSenseSensor(coordinator, description) for description in SENSOR_TYPES
for description in SENSOR_TYPES )
]
async_add_entities(entities, False)
class PoolSenseSensor(PoolSenseEntity, SensorEntity): class PoolSenseSensor(PoolSenseEntity, SensorEntity):