Improve Anova typing (#99146)

This commit is contained in:
Joost Lekkerkerker 2023-08-27 20:06:19 +02:00 committed by GitHub
parent a48c7f67b4
commit 65103d4515
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 13 deletions

View File

@ -6,7 +6,7 @@ import logging
from anova_wifi import AnovaApi, AnovaPrecisionCooker, InvalidLogin, NoDevicesFound from anova_wifi import AnovaApi, AnovaPrecisionCooker, InvalidLogin, NoDevicesFound
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform from homeassistant.const import CONF_DEVICES, CONF_PASSWORD, CONF_USERNAME, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import aiohttp_client from homeassistant.helpers import aiohttp_client
@ -42,7 +42,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
device[1], device[1],
api.jwt, api.jwt,
) )
for device in entry.data["devices"] for device in entry.data[CONF_DEVICES]
] ]
try: try:
new_devices = await api.get_devices() new_devices = await api.get_devices()
@ -55,7 +55,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
entry, entry,
data={ data={
**entry.data, **entry.data,
**{"devices": serialize_device_list(devices)}, **{CONF_DEVICES: serialize_device_list(devices)},
}, },
) )
coordinators = [AnovaCoordinator(hass, device) for device in devices] coordinators = [AnovaCoordinator(hass, device) for device in devices]

View File

@ -4,16 +4,16 @@ from __future__ import annotations
from anova_wifi import AnovaApi, InvalidLogin, NoDevicesFound from anova_wifi import AnovaApi, InvalidLogin, NoDevicesFound
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant.config_entries import ConfigFlow
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_DEVICES, CONF_PASSWORD, CONF_USERNAME
from homeassistant.data_entry_flow import FlowResult from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import aiohttp_client from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN from .const import DOMAIN
from .util import serialize_device_list from .util import serialize_device_list
class AnovaConfligFlow(config_entries.ConfigFlow, domain=DOMAIN): class AnovaConfligFlow(ConfigFlow, domain=DOMAIN):
"""Sets up a config flow for Anova.""" """Sets up a config flow for Anova."""
VERSION = 1 VERSION = 1
@ -25,7 +25,7 @@ class AnovaConfligFlow(config_entries.ConfigFlow, domain=DOMAIN):
errors: dict[str, str] = {} errors: dict[str, str] = {}
if user_input is not None: if user_input is not None:
api = AnovaApi( api = AnovaApi(
aiohttp_client.async_get_clientsession(self.hass), async_get_clientsession(self.hass),
user_input[CONF_USERNAME], user_input[CONF_USERNAME],
user_input[CONF_PASSWORD], user_input[CONF_PASSWORD],
) )
@ -48,7 +48,7 @@ class AnovaConfligFlow(config_entries.ConfigFlow, domain=DOMAIN):
data={ data={
CONF_USERNAME: api.username, CONF_USERNAME: api.username,
CONF_PASSWORD: api.password, CONF_PASSWORD: api.password,
"devices": device_list, CONF_DEVICES: device_list,
}, },
) )

View File

@ -8,18 +8,19 @@ from .coordinator import AnovaCoordinator
class AnovaEntity(CoordinatorEntity[AnovaCoordinator], Entity): class AnovaEntity(CoordinatorEntity[AnovaCoordinator], Entity):
"""Defines a Anova entity.""" """Defines an Anova entity."""
_attr_has_entity_name = True
def __init__(self, coordinator: AnovaCoordinator) -> None: def __init__(self, coordinator: AnovaCoordinator) -> None:
"""Initialize the Anova entity.""" """Initialize the Anova entity."""
super().__init__(coordinator) super().__init__(coordinator)
self.device = coordinator.anova_device self.device = coordinator.anova_device
self._attr_device_info = coordinator.device_info self._attr_device_info = coordinator.device_info
self._attr_has_entity_name = True
class AnovaDescriptionEntity(AnovaEntity, Entity): class AnovaDescriptionEntity(AnovaEntity):
"""Defines a Anova entity that uses a description.""" """Defines an Anova entity that uses a description."""
def __init__( def __init__(
self, coordinator: AnovaCoordinator, description: EntityDescription self, coordinator: AnovaCoordinator, description: EntityDescription