From 89859aad8dc9a88547c0a1569272613546d85104 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Sun, 9 Jan 2022 06:03:18 +0100 Subject: [PATCH] Fix ParamSpec Callable return types (#63701) --- homeassistant/components/dlna_dmr/media_player.py | 4 ++-- homeassistant/components/evil_genius_labs/util.py | 6 +++--- homeassistant/components/tplink/entity.py | 6 +++--- homeassistant/components/vlc_telnet/media_player.py | 4 ++-- homeassistant/components/zwave_js/addon.py | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/dlna_dmr/media_player.py b/homeassistant/components/dlna_dmr/media_player.py index fa20c4f6708..ada43f37f81 100644 --- a/homeassistant/components/dlna_dmr/media_player.py +++ b/homeassistant/components/dlna_dmr/media_player.py @@ -2,7 +2,7 @@ from __future__ import annotations import asyncio -from collections.abc import Awaitable, Callable, Sequence +from collections.abc import Awaitable, Callable, Coroutine, Sequence import contextlib from datetime import datetime, timedelta import functools @@ -73,7 +73,7 @@ _P = ParamSpec("_P") def catch_request_errors( func: Callable[Concatenate[_T, _P], Awaitable[_R]] # type: ignore[misc] -) -> Callable[Concatenate[_T, _P], Awaitable[_R | None]]: # type: ignore[misc] +) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R | None]]: # type: ignore[misc] """Catch UpnpError errors.""" @functools.wraps(func) diff --git a/homeassistant/components/evil_genius_labs/util.py b/homeassistant/components/evil_genius_labs/util.py index dd9ce97326e..40ba375a2b4 100644 --- a/homeassistant/components/evil_genius_labs/util.py +++ b/homeassistant/components/evil_genius_labs/util.py @@ -1,9 +1,9 @@ """Utilities for Evil Genius Labs.""" from __future__ import annotations -from collections.abc import Awaitable, Callable +from collections.abc import Awaitable, Callable, Coroutine from functools import wraps -from typing import TypeVar +from typing import Any, TypeVar from typing_extensions import Concatenate, ParamSpec @@ -16,7 +16,7 @@ _P = ParamSpec("_P") def update_when_done( func: Callable[Concatenate[_T, _P], Awaitable[_R]] # type: ignore[misc] -) -> Callable[Concatenate[_T, _P], Awaitable[_R]]: # type: ignore[misc] +) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]: # type: ignore[misc] """Decorate function to trigger update when function is done.""" @wraps(func) diff --git a/homeassistant/components/tplink/entity.py b/homeassistant/components/tplink/entity.py index 0bfecaafa3d..f04a7459543 100644 --- a/homeassistant/components/tplink/entity.py +++ b/homeassistant/components/tplink/entity.py @@ -1,8 +1,8 @@ """Common code for tplink.""" from __future__ import annotations -from collections.abc import Awaitable, Callable -from typing import TypeVar +from collections.abc import Awaitable, Callable, Coroutine +from typing import Any, TypeVar from kasa import SmartDevice from typing_extensions import Concatenate, ParamSpec @@ -20,7 +20,7 @@ _P = ParamSpec("_P") def async_refresh_after( func: Callable[Concatenate[_T, _P], Awaitable[None]] # type: ignore[misc] -) -> Callable[Concatenate[_T, _P], Awaitable[None]]: # type: ignore[misc] +) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: # type: ignore[misc] """Define a wrapper to refresh after.""" async def _async_wrap(self: _T, *args: _P.args, **kwargs: _P.kwargs) -> None: diff --git a/homeassistant/components/vlc_telnet/media_player.py b/homeassistant/components/vlc_telnet/media_player.py index 11c96cf9933..ae46370dc40 100644 --- a/homeassistant/components/vlc_telnet/media_player.py +++ b/homeassistant/components/vlc_telnet/media_player.py @@ -1,7 +1,7 @@ """Provide functionality to interact with the vlc telnet interface.""" from __future__ import annotations -from collections.abc import Awaitable, Callable +from collections.abc import Awaitable, Callable, Coroutine from datetime import datetime from functools import wraps from typing import Any, TypeVar @@ -70,7 +70,7 @@ async def async_setup_entry( def catch_vlc_errors( func: Callable[Concatenate[_T, _P], Awaitable[None]] # type: ignore[misc] -) -> Callable[Concatenate[_T, _P], Awaitable[None]]: # type: ignore[misc] +) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: # type: ignore[misc] """Catch VLC errors.""" @wraps(func) diff --git a/homeassistant/components/zwave_js/addon.py b/homeassistant/components/zwave_js/addon.py index 1ea71b260a6..7552ee117cc 100644 --- a/homeassistant/components/zwave_js/addon.py +++ b/homeassistant/components/zwave_js/addon.py @@ -2,7 +2,7 @@ from __future__ import annotations import asyncio -from collections.abc import Awaitable, Callable +from collections.abc import Awaitable, Callable, Coroutine from dataclasses import dataclass from enum import Enum from functools import partial @@ -53,12 +53,12 @@ def get_addon_manager(hass: HomeAssistant) -> AddonManager: def api_error( error_message: str, -) -> Callable[[Callable[_P, Awaitable[_R]]], Callable[_P, Awaitable[_R]]]: +) -> Callable[[Callable[_P, Awaitable[_R]]], Callable[_P, Coroutine[Any, Any, _R]]]: """Handle HassioAPIError and raise a specific AddonError.""" def handle_hassio_api_error( func: Callable[_P, Awaitable[_R]] - ) -> Callable[_P, Awaitable[_R]]: + ) -> Callable[_P, Coroutine[Any, Any, _R]]: """Handle a HassioAPIError.""" async def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> _R: