From f57c0ea725ecf7b3da3d4a0f0c2fe85c656ba44e Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Mon, 23 Jan 2023 08:40:09 +0100 Subject: [PATCH] Update Union typing (2) [Py310] (#86425) --- homeassistant/components/google/calendar.py | 6 ++---- .../components/greeneye_monitor/sensor.py | 14 +++++++------- homeassistant/components/jellyfin/coordinator.py | 7 ++----- homeassistant/components/lidarr/coordinator.py | 4 ++-- homeassistant/components/litterrobot/sensor.py | 4 ++-- homeassistant/components/litterrobot/switch.py | 6 +++--- homeassistant/components/meteo_france/sensor.py | 4 ++-- homeassistant/components/radarr/coordinator.py | 4 ++-- homeassistant/components/shelly/button.py | 8 ++++---- homeassistant/components/simplisafe/typing.py | 4 +--- homeassistant/components/sleepiq/entity.py | 4 ++-- 11 files changed, 29 insertions(+), 36 deletions(-) diff --git a/homeassistant/components/google/calendar.py b/homeassistant/components/google/calendar.py index 702146ee052..dcbcfe44474 100644 --- a/homeassistant/components/google/calendar.py +++ b/homeassistant/components/google/calendar.py @@ -6,7 +6,7 @@ import asyncio from collections.abc import Iterable from datetime import datetime, timedelta import logging -from typing import Any, Union, cast +from typing import Any, cast from gcal_sync.api import ( GoogleCalendarService, @@ -392,9 +392,7 @@ class CalendarQueryUpdateCoordinator(DataUpdateCoordinator[list[Event]]): class GoogleCalendarEntity( - CoordinatorEntity[ - Union[CalendarSyncUpdateCoordinator, CalendarQueryUpdateCoordinator] - ], + CoordinatorEntity[CalendarSyncUpdateCoordinator | CalendarQueryUpdateCoordinator], CalendarEntity, ): """A calendar event entity.""" diff --git a/homeassistant/components/greeneye_monitor/sensor.py b/homeassistant/components/greeneye_monitor/sensor.py index 55318ad6018..b4c62cd2bc1 100644 --- a/homeassistant/components/greeneye_monitor/sensor.py +++ b/homeassistant/components/greeneye_monitor/sensor.py @@ -1,7 +1,7 @@ """Support for the sensors in a GreenEye Monitor.""" from __future__ import annotations -from typing import Any, Union +from typing import Any import greeneye @@ -116,12 +116,12 @@ async def async_setup_platform( on_new_monitor(monitor) -UnderlyingSensorType = Union[ - greeneye.monitor.Channel, - greeneye.monitor.PulseCounter, - greeneye.monitor.TemperatureSensor, - greeneye.monitor.VoltageSensor, -] +UnderlyingSensorType = ( + greeneye.monitor.Channel + | greeneye.monitor.PulseCounter + | greeneye.monitor.TemperatureSensor + | greeneye.monitor.VoltageSensor +) class GEMSensor(SensorEntity): diff --git a/homeassistant/components/jellyfin/coordinator.py b/homeassistant/components/jellyfin/coordinator.py index ac2cd78d257..b7563dcd862 100644 --- a/homeassistant/components/jellyfin/coordinator.py +++ b/homeassistant/components/jellyfin/coordinator.py @@ -3,7 +3,7 @@ from __future__ import annotations from abc import ABC, abstractmethod from datetime import timedelta -from typing import Any, TypeVar, Union +from typing import Any, TypeVar from jellyfin_apiclient_python import JellyfinClient @@ -15,10 +15,7 @@ from .const import DOMAIN, LOGGER JellyfinDataT = TypeVar( "JellyfinDataT", - bound=Union[ - dict[str, dict[str, Any]], - dict[str, Any], - ], + bound=dict[str, dict[str, Any]] | dict[str, Any], ) diff --git a/homeassistant/components/lidarr/coordinator.py b/homeassistant/components/lidarr/coordinator.py index e4554685c8c..9cc606a12b3 100644 --- a/homeassistant/components/lidarr/coordinator.py +++ b/homeassistant/components/lidarr/coordinator.py @@ -3,7 +3,7 @@ from __future__ import annotations from abc import ABC, abstractmethod from datetime import timedelta -from typing import Generic, TypeVar, Union, cast +from typing import Generic, TypeVar, cast from aiopyarr import LidarrAlbum, LidarrQueue, LidarrRootFolder, exceptions from aiopyarr.lidarr_client import LidarrClient @@ -16,7 +16,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda from .const import DEFAULT_MAX_RECORDS, DOMAIN, LOGGER -T = TypeVar("T", bound=Union[list[LidarrRootFolder], LidarrQueue, str, LidarrAlbum]) +T = TypeVar("T", bound=list[LidarrRootFolder] | LidarrQueue | str | LidarrAlbum) class LidarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC): diff --git a/homeassistant/components/litterrobot/sensor.py b/homeassistant/components/litterrobot/sensor.py index 730ead471fe..1fc99b9495a 100644 --- a/homeassistant/components/litterrobot/sensor.py +++ b/homeassistant/components/litterrobot/sensor.py @@ -4,7 +4,7 @@ from __future__ import annotations from collections.abc import Callable from dataclasses import dataclass from datetime import datetime -from typing import Any, Generic, Union, cast +from typing import Any, Generic, cast from pylitterbot import FeederRobot, LitterRobot, LitterRobot4, Robot @@ -55,7 +55,7 @@ class LitterRobotSensorEntity(LitterRobotEntity[_RobotT], SensorEntity): if self.entity_description.should_report(self.robot): if isinstance(val := getattr(self.robot, self.entity_description.key), str): return val.lower() - return cast(Union[float, datetime, None], val) + return cast(float | datetime | None, val) return None @property diff --git a/homeassistant/components/litterrobot/switch.py b/homeassistant/components/litterrobot/switch.py index dcddbeabf62..6199a4d89b9 100644 --- a/homeassistant/components/litterrobot/switch.py +++ b/homeassistant/components/litterrobot/switch.py @@ -3,7 +3,7 @@ from __future__ import annotations from collections.abc import Callable, Coroutine from dataclasses import dataclass -from typing import Any, Generic, Union +from typing import Any, Generic from pylitterbot import FeederRobot, LitterRobot @@ -34,13 +34,13 @@ class RobotSwitchEntityDescription(SwitchEntityDescription, RequiredKeysMixin[_R ROBOT_SWITCHES = [ - RobotSwitchEntityDescription[Union[LitterRobot, FeederRobot]]( + RobotSwitchEntityDescription[LitterRobot | FeederRobot]( key="night_light_mode_enabled", name="Night light mode", icons=("mdi:lightbulb-on", "mdi:lightbulb-off"), set_fn=lambda robot, value: robot.set_night_light(value), ), - RobotSwitchEntityDescription[Union[LitterRobot, FeederRobot]]( + RobotSwitchEntityDescription[LitterRobot | FeederRobot]( key="panel_lock_enabled", name="Panel lockout", icons=("mdi:lock", "mdi:lock-open"), diff --git a/homeassistant/components/meteo_france/sensor.py b/homeassistant/components/meteo_france/sensor.py index 22a9b195d2d..c87aea05260 100644 --- a/homeassistant/components/meteo_france/sensor.py +++ b/homeassistant/components/meteo_france/sensor.py @@ -2,7 +2,7 @@ from __future__ import annotations from dataclasses import dataclass -from typing import Any, TypeVar, Union +from typing import Any, TypeVar from meteofrance_api.helpers import ( get_warning_text_status_from_indice_color, @@ -49,7 +49,7 @@ from .const import ( MODEL, ) -_DataT = TypeVar("_DataT", bound=Union[Rain, Forecast, CurrentPhenomenons]) +_DataT = TypeVar("_DataT", bound=Rain | Forecast | CurrentPhenomenons) @dataclass diff --git a/homeassistant/components/radarr/coordinator.py b/homeassistant/components/radarr/coordinator.py index c2f8d7ce6ba..5537a18725c 100644 --- a/homeassistant/components/radarr/coordinator.py +++ b/homeassistant/components/radarr/coordinator.py @@ -3,7 +3,7 @@ from __future__ import annotations from abc import ABC, abstractmethod from datetime import timedelta -from typing import Generic, TypeVar, Union, cast +from typing import Generic, TypeVar, cast from aiopyarr import Health, RadarrMovie, RootFolder, SystemStatus, exceptions from aiopyarr.models.host_configuration import PyArrHostConfiguration @@ -16,7 +16,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda from .const import DOMAIN, LOGGER -T = TypeVar("T", bound=Union[SystemStatus, list[RootFolder], list[Health], int]) +T = TypeVar("T", bound=SystemStatus | list[RootFolder] | list[Health] | int) class RadarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC): diff --git a/homeassistant/components/shelly/button.py b/homeassistant/components/shelly/button.py index 8c3f2b82dd7..01c1b06cb6e 100644 --- a/homeassistant/components/shelly/button.py +++ b/homeassistant/components/shelly/button.py @@ -3,7 +3,7 @@ from __future__ import annotations from collections.abc import Callable, Coroutine from dataclasses import dataclass -from typing import Any, Final, Generic, TypeVar, Union +from typing import Any, Final, Generic, TypeVar from homeassistant.components.button import ( ButtonDeviceClass, @@ -23,7 +23,7 @@ from .coordinator import ShellyBlockCoordinator, ShellyRpcCoordinator, get_entry from .utils import get_block_device_name, get_device_entry_gen, get_rpc_device_name _ShellyCoordinatorT = TypeVar( - "_ShellyCoordinatorT", bound=Union[ShellyBlockCoordinator, ShellyRpcCoordinator] + "_ShellyCoordinatorT", bound=ShellyBlockCoordinator | ShellyRpcCoordinator ) @@ -44,7 +44,7 @@ class ShellyButtonDescription( BUTTONS: Final[list[ShellyButtonDescription[Any]]] = [ - ShellyButtonDescription[Union[ShellyBlockCoordinator, ShellyRpcCoordinator]]( + ShellyButtonDescription[ShellyBlockCoordinator | ShellyRpcCoordinator]( key="reboot", name="Reboot", device_class=ButtonDeviceClass.RESTART, @@ -102,7 +102,7 @@ async def async_setup_entry( class ShellyButton( - CoordinatorEntity[Union[ShellyRpcCoordinator, ShellyBlockCoordinator]], ButtonEntity + CoordinatorEntity[ShellyRpcCoordinator | ShellyBlockCoordinator], ButtonEntity ): """Defines a Shelly base button.""" diff --git a/homeassistant/components/simplisafe/typing.py b/homeassistant/components/simplisafe/typing.py index 10f4fadc1c5..d49d356036a 100644 --- a/homeassistant/components/simplisafe/typing.py +++ b/homeassistant/components/simplisafe/typing.py @@ -1,7 +1,5 @@ """Define typing helpers for SimpliSafe.""" -from typing import Union - from simplipy.system.v2 import SystemV2 from simplipy.system.v3 import SystemV3 -SystemType = Union[SystemV2, SystemV3] +SystemType = SystemV2 | SystemV3 diff --git a/homeassistant/components/sleepiq/entity.py b/homeassistant/components/sleepiq/entity.py index 3dcfc1784d3..d4ca2c894da 100644 --- a/homeassistant/components/sleepiq/entity.py +++ b/homeassistant/components/sleepiq/entity.py @@ -1,6 +1,6 @@ """Entity for the SleepIQ integration.""" from abc import abstractmethod -from typing import TypeVar, Union +from typing import TypeVar from asyncsleepiq import SleepIQBed, SleepIQSleeper @@ -14,7 +14,7 @@ from .coordinator import SleepIQDataUpdateCoordinator, SleepIQPauseUpdateCoordin _SleepIQCoordinatorT = TypeVar( "_SleepIQCoordinatorT", - bound=Union[SleepIQDataUpdateCoordinator, SleepIQPauseUpdateCoordinator], + bound=SleepIQDataUpdateCoordinator | SleepIQPauseUpdateCoordinator, )