From 10bfebed19459f2d505d1964035c1c1f22443611 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 1 Feb 2023 13:24:07 +0100 Subject: [PATCH] Improve typing in plex services (#87078) --- homeassistant/components/plex/services.py | 24 +++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/plex/services.py b/homeassistant/components/plex/services.py index b5080dd2c5c..46c0df88611 100644 --- a/homeassistant/components/plex/services.py +++ b/homeassistant/components/plex/services.py @@ -20,6 +20,7 @@ from .const import ( ) from .errors import MediaNotFound from .models import PlexMediaSearchResult +from .server import PlexServer REFRESH_LIBRARY_SCHEMA = vol.Schema( {vol.Optional("server_name"): str, vol.Required("library_name"): str} @@ -28,7 +29,7 @@ REFRESH_LIBRARY_SCHEMA = vol.Schema( _LOGGER = logging.getLogger(__package__) -async def async_setup_services(hass): +async def async_setup_services(hass: HomeAssistant) -> None: """Set up services for the Plex component.""" async def async_refresh_library_service(service_call: ServiceCall) -> None: @@ -53,8 +54,6 @@ async def async_setup_services(hass): DOMAIN, SERVICE_SCAN_CLIENTS, async_scan_clients_service ) - return True - def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None: """Scan a Plex library for new and updated media.""" @@ -77,17 +76,22 @@ def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None: library.update() -def get_plex_server(hass, plex_server_name=None, plex_server_id=None): +def get_plex_server( + hass: HomeAssistant, + plex_server_name: str | None = None, + plex_server_id: str | None = None, +) -> PlexServer: """Retrieve a configured Plex server by name.""" if DOMAIN not in hass.data: raise HomeAssistantError("Plex integration not configured") - plex_servers = hass.data[DOMAIN][SERVERS].values() - if not plex_servers: + servers: dict[str, PlexServer] = hass.data[DOMAIN][SERVERS] + if not servers: raise HomeAssistantError("No Plex servers available") if plex_server_id: - return hass.data[DOMAIN][SERVERS][plex_server_id] + return servers[plex_server_id] + plex_servers = servers.values() if plex_server_name: plex_server = next( (x for x in plex_servers if x.friendly_name == plex_server_name), None @@ -110,7 +114,11 @@ def get_plex_server(hass, plex_server_name=None, plex_server_id=None): def process_plex_payload( - hass, content_type, content_id, default_plex_server=None, supports_playqueues=True + hass: HomeAssistant, + content_type: str, + content_id: str, + default_plex_server: PlexServer | None = None, + supports_playqueues: bool = True, ) -> PlexMediaSearchResult: """Look up Plex media using media_player.play_media service payloads.""" plex_server = default_plex_server