Use dataclass properties in dlna_dmr (#60794)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2021-12-02 18:49:34 +01:00 committed by GitHub
parent d775c66194
commit 66494b0238
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 9 deletions

View file

@ -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

View file

@ -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: