From 66494b0238b8dc8ab3f2671fc126c172a91de2fc Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Thu, 2 Dec 2021 18:49:34 +0100 Subject: [PATCH] Use dataclass properties in dlna_dmr (#60794) Co-authored-by: epenet --- homeassistant/components/dlna_dmr/config_flow.py | 12 +++++------- homeassistant/components/dlna_dmr/media_player.py | 6 ++++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/dlna_dmr/config_flow.py b/homeassistant/components/dlna_dmr/config_flow.py index 141ff159bea..69437d99e3d 100644 --- a/homeassistant/components/dlna_dmr/config_flow.py +++ b/homeassistant/components/dlna_dmr/config_flow.py @@ -4,7 +4,7 @@ from __future__ import annotations from collections.abc import Callable import logging from pprint import pformat -from typing import Any, Mapping, Optional +from typing import Any, Mapping, Optional, cast from urllib.parse import urlparse from async_upnp_client.client import UpnpError @@ -93,8 +93,8 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): return await self.async_step_manual() self._discoveries = { - discovery.get(ssdp.ATTR_UPNP_FRIENDLY_NAME) - or urlparse(discovery[ssdp.ATTR_SSDP_LOCATION]).hostname: discovery + discovery.upnp.get(ssdp.ATTR_UPNP_FRIENDLY_NAME) + or cast(str, urlparse(discovery.ssdp_location).hostname): discovery for discovery in discoveries } @@ -158,7 +158,7 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): # Find the device in the list of unconfigured devices for discovery in discoveries: - if discovery[ssdp.ATTR_SSDP_LOCATION] == self._location: + if discovery.ssdp_location == self._location: # Device found via SSDP, it shouldn't need polling self._options[CONF_POLL_AVAILABILITY] = False # Discovery info has everything required to create config entry @@ -376,9 +376,7 @@ class DlnaDmrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): for entry in self._async_current_entries(include_ignore=False) } discoveries = [ - disc - for disc in discoveries - if disc[ssdp.ATTR_SSDP_UDN] not in current_unique_ids + disc for disc in discoveries if disc.ssdp_udn not in current_unique_ids ] return discoveries diff --git a/homeassistant/components/dlna_dmr/media_player.py b/homeassistant/components/dlna_dmr/media_player.py index bd39b070228..2b529609d9e 100644 --- a/homeassistant/components/dlna_dmr/media_player.py +++ b/homeassistant/components/dlna_dmr/media_player.py @@ -6,7 +6,7 @@ from collections.abc import Sequence import contextlib from datetime import datetime, timedelta import functools -from typing import Any, Callable, TypeVar, cast +from typing import TYPE_CHECKING, Any, Callable, TypeVar, cast from async_upnp_client import UpnpService, UpnpStateVariable from async_upnp_client.const import NotificationSubType @@ -278,7 +278,9 @@ class DlnaDmrEntity(MediaPlayerEntity): await self._device_disconnect() if change == ssdp.SsdpChange.ALIVE and not self._device: - location = info.ssdp_location or "" + if TYPE_CHECKING: + assert info.ssdp_location + location = info.ssdp_location try: await self._device_connect(location) except UpnpError as err: