From 2c99f21f6dfa77fb9adb076d8e5ca2d6c4fad0df Mon Sep 17 00:00:00 2001 From: Philip Vanloo <26272906+pvanloo@users.noreply.github.com> Date: Fri, 15 Mar 2024 11:13:45 +0100 Subject: [PATCH] Improve typing (#4) --- src/linkplay/bridge.py | 11 +++++------ src/linkplay/discovery.py | 14 +++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/linkplay/bridge.py b/src/linkplay/bridge.py index b3d755e..b95fad7 100644 --- a/src/linkplay/bridge.py +++ b/src/linkplay/bridge.py @@ -1,5 +1,4 @@ from __future__ import annotations -from typing import Dict, List from aiohttp import ClientSession @@ -24,7 +23,7 @@ class LinkPlayDevice(): """Represents a LinkPlay device.""" bridge: LinkPlayBridge - properties: Dict[DeviceAttribute, str] = dict.fromkeys(DeviceAttribute.__members__.values(), "") + properties: dict[DeviceAttribute, str] = dict.fromkeys(DeviceAttribute.__members__.values(), "") def __init__(self, bridge: LinkPlayBridge): self.bridge = bridge @@ -62,7 +61,7 @@ class LinkPlayPlayer(): """Represents a LinkPlay player.""" bridge: LinkPlayBridge - properties: Dict[PlayerAttribute, str] = dict.fromkeys(PlayerAttribute.__members__.values(), "") + properties: dict[PlayerAttribute, str] = dict.fromkeys(PlayerAttribute.__members__.values(), "") def __init__(self, bridge: LinkPlayBridge): self.bridge = bridge @@ -229,7 +228,7 @@ def endpoint(self) -> str: """Returns the current player endpoint.""" return f"{self.protocol}://{self.ip_address}" - async def json_request(self, command: str) -> Dict[str, str]: + async def json_request(self, command: str) -> dict[str, str]: """Performs a GET request on the given command and returns the result as a JSON object.""" return await session_call_api_json(self.endpoint, self.session, command) @@ -243,9 +242,9 @@ class LinkPlayMultiroom(): The leader is the device that controls the group.""" leader: LinkPlayBridge - followers: List[LinkPlayBridge] + followers: list[LinkPlayBridge] - def __init__(self, leader: LinkPlayBridge, followers: List[LinkPlayBridge]): + def __init__(self, leader: LinkPlayBridge, followers: list[LinkPlayBridge]): self.leader = leader self.followers = followers diff --git a/src/linkplay/discovery.py b/src/linkplay/discovery.py index 11d7f53..08451d8 100644 --- a/src/linkplay/discovery.py +++ b/src/linkplay/discovery.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List +from typing import Any from aiohttp import ClientSession from async_upnp_client.search import async_search @@ -21,9 +21,9 @@ async def linkplay_factory_bridge(ip_address: str, session: ClientSession) -> Li return bridge -async def discover_linkplay_bridges(session: ClientSession) -> List[LinkPlayBridge]: +async def discover_linkplay_bridges(session: ClientSession) -> list[LinkPlayBridge]: """Attempts to discover LinkPlay devices on the local network.""" - devices: List[LinkPlayBridge] = [] + devices: list[LinkPlayBridge] = [] async def add_linkplay_device_to_list(upnp_device: CaseInsensitiveDict): ip_address: str | None = upnp_device.get('_host') @@ -42,17 +42,17 @@ async def add_linkplay_device_to_list(upnp_device: CaseInsensitiveDict): return devices -async def discover_multirooms(bridges: List[LinkPlayBridge]) -> List[LinkPlayMultiroom]: +async def discover_multirooms(bridges: list[LinkPlayBridge]) -> list[LinkPlayMultiroom]: """Discovers multirooms through the list of provided bridges.""" - multirooms: List[LinkPlayMultiroom] = [] + multirooms: list[LinkPlayMultiroom] = [] for bridge in bridges: - properties: Dict[Any, Any] = await bridge.json_request(LinkPlayCommand.MULTIROOM_LIST) + properties: dict[Any, Any] = await bridge.json_request(LinkPlayCommand.MULTIROOM_LIST) if int(properties[MultiroomAttribute.NUM_FOLLOWERS]) == 0: continue - followers: List[LinkPlayBridge] = [] + followers: list[LinkPlayBridge] = [] for follower in properties[MultiroomAttribute.FOLLOWER_LIST]: follower_uuid = follower[MultiroomAttribute.UUID] if follower_bridge := next((b for b in bridges if b.device.uuid == follower_uuid), None):