Improve notion generic typing (#91883)

This commit is contained in:
Marc Mueller 2023-04-23 11:24:39 +02:00 committed by GitHub
parent f18056f0a4
commit 00e600d406
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 7 deletions

View File

@ -235,29 +235,29 @@ def _async_register_new_bridge(
) )
class NotionEntity(CoordinatorEntity): class NotionEntity(CoordinatorEntity[DataUpdateCoordinator[NotionData]]):
"""Define a base Notion entity.""" """Define a base Notion entity."""
_attr_has_entity_name = True _attr_has_entity_name = True
def __init__( def __init__(
self, self,
coordinator: DataUpdateCoordinator, coordinator: DataUpdateCoordinator[NotionData],
listener_id: str, listener_id: str,
sensor_id: str, sensor_id: str,
bridge_id: str, bridge_id: int,
system_id: str, system_id: str,
description: EntityDescription, description: EntityDescription,
) -> None: ) -> None:
"""Initialize the entity.""" """Initialize the entity."""
super().__init__(coordinator) super().__init__(coordinator)
bridge = self.coordinator.data.bridges.get(bridge_id, {}) bridge = self.coordinator.data.bridges[bridge_id]
sensor = self.coordinator.data.sensors[sensor_id] sensor = self.coordinator.data.sensors[sensor_id]
self._attr_device_info = DeviceInfo( self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, sensor.hardware_id)}, identifiers={(DOMAIN, sensor.hardware_id)},
manufacturer="Silicon Labs", manufacturer="Silicon Labs",
model=sensor.hardware_revision, model=str(sensor.hardware_revision),
name=str(sensor.name).capitalize(), name=str(sensor.name).capitalize(),
sw_version=sensor.firmware_version, sw_version=sensor.firmware_version,
via_device=(DOMAIN, bridge.hardware_id), via_device=(DOMAIN, bridge.hardware_id),

View File

@ -9,6 +9,7 @@ from homeassistant.const import CONF_EMAIL, CONF_PASSWORD, CONF_UNIQUE_ID, CONF_
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from . import NotionData
from .const import DOMAIN from .const import DOMAIN
CONF_DEVICE_KEY = "device_key" CONF_DEVICE_KEY = "device_key"
@ -33,7 +34,7 @@ async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry hass: HomeAssistant, entry: ConfigEntry
) -> dict[str, Any]: ) -> dict[str, Any]:
"""Return diagnostics for a config entry.""" """Return diagnostics for a config entry."""
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] coordinator: DataUpdateCoordinator[NotionData] = hass.data[DOMAIN][entry.entry_id]
return async_redact_data( return async_redact_data(
{ {

View File

@ -69,7 +69,7 @@ class NotionSensor(NotionEntity, SensorEntity):
listener = self.coordinator.data.listeners[self._listener_id] listener = self.coordinator.data.listeners[self._listener_id]
if listener.listener_kind == ListenerKind.TEMPERATURE: if listener.listener_kind == ListenerKind.TEMPERATURE:
self._attr_native_value = round(listener.status.temperature, 1) self._attr_native_value = round(listener.status.temperature, 1) # type: ignore[attr-defined]
else: else:
LOGGER.error( LOGGER.error(
"Unknown listener type for sensor %s", "Unknown listener type for sensor %s",