mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 01:08:12 +00:00
Use PEP 695 TypeVar syntax (#133049)
This commit is contained in:
parent
0a748252e7
commit
5c6e4ad191
@ -6,7 +6,6 @@ from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
import logging
|
||||
from math import ceil
|
||||
from typing import Generic, TypeVar
|
||||
|
||||
from motionblindsble.const import (
|
||||
MotionBlindType,
|
||||
@ -45,11 +44,9 @@ _LOGGER = logging.getLogger(__name__)
|
||||
|
||||
PARALLEL_UPDATES = 0
|
||||
|
||||
_T = TypeVar("_T")
|
||||
|
||||
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class MotionblindsBLESensorEntityDescription(SensorEntityDescription, Generic[_T]):
|
||||
class MotionblindsBLESensorEntityDescription[_T](SensorEntityDescription):
|
||||
"""Entity description of a sensor entity with initial_value attribute."""
|
||||
|
||||
initial_value: str | None = None
|
||||
@ -110,7 +107,7 @@ async def async_setup_entry(
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
class MotionblindsBLESensorEntity(MotionblindsBLEEntity, SensorEntity, Generic[_T]):
|
||||
class MotionblindsBLESensorEntity[_T](MotionblindsBLEEntity, SensorEntity):
|
||||
"""Representation of a sensor entity."""
|
||||
|
||||
entity_description: MotionblindsBLESensorEntityDescription[_T]
|
||||
|
@ -4,7 +4,6 @@ from __future__ import annotations
|
||||
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
from typing import Generic, TypeVar
|
||||
|
||||
from powerfox import Device, PowerMeter, WaterMeter
|
||||
|
||||
@ -22,11 +21,11 @@ from . import PowerfoxConfigEntry
|
||||
from .coordinator import PowerfoxDataUpdateCoordinator
|
||||
from .entity import PowerfoxEntity
|
||||
|
||||
T = TypeVar("T", PowerMeter, WaterMeter)
|
||||
|
||||
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class PowerfoxSensorEntityDescription(Generic[T], SensorEntityDescription):
|
||||
class PowerfoxSensorEntityDescription[T: (PowerMeter, WaterMeter)](
|
||||
SensorEntityDescription
|
||||
):
|
||||
"""Describes Poweropti sensor entity."""
|
||||
|
||||
value_fn: Callable[[T], float | int | None]
|
||||
|
@ -5,7 +5,7 @@ from __future__ import annotations
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
from operator import attrgetter, methodcaller
|
||||
from typing import TYPE_CHECKING, Generic, TypeVar
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from tesla_powerwall import GridState, MeterResponse, MeterType
|
||||
|
||||
@ -35,14 +35,12 @@ from .models import BatteryResponse, PowerwallConfigEntry, PowerwallRuntimeData
|
||||
_METER_DIRECTION_EXPORT = "export"
|
||||
_METER_DIRECTION_IMPORT = "import"
|
||||
|
||||
_ValueParamT = TypeVar("_ValueParamT")
|
||||
_ValueT = TypeVar("_ValueT", bound=float | int | str | None)
|
||||
type _ValueType = float | int | str | None
|
||||
|
||||
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class PowerwallSensorEntityDescription(
|
||||
SensorEntityDescription,
|
||||
Generic[_ValueParamT, _ValueT],
|
||||
class PowerwallSensorEntityDescription[_ValueParamT, _ValueT: _ValueType](
|
||||
SensorEntityDescription
|
||||
):
|
||||
"""Describes Powerwall entity."""
|
||||
|
||||
@ -389,7 +387,7 @@ class PowerWallImportSensor(PowerWallEnergyDirectionSensor):
|
||||
return meter.get_energy_imported()
|
||||
|
||||
|
||||
class PowerWallBatterySensor(BatteryEntity, SensorEntity, Generic[_ValueT]):
|
||||
class PowerWallBatterySensor[_ValueT: _ValueType](BatteryEntity, SensorEntity):
|
||||
"""Representation of an Powerwall Battery sensor."""
|
||||
|
||||
entity_description: PowerwallSensorEntityDescription[BatteryResponse, _ValueT]
|
||||
|
@ -90,7 +90,6 @@ RANDOM_MICROSECOND_MIN = 50000
|
||||
RANDOM_MICROSECOND_MAX = 500000
|
||||
|
||||
_TypedDictT = TypeVar("_TypedDictT", bound=Mapping[str, Any])
|
||||
_StateEventDataT = TypeVar("_StateEventDataT", bound=EventStateEventData)
|
||||
|
||||
|
||||
@dataclass(slots=True, frozen=True)
|
||||
@ -333,7 +332,7 @@ def async_track_state_change_event(
|
||||
|
||||
|
||||
@callback
|
||||
def _async_dispatch_entity_id_event_soon(
|
||||
def _async_dispatch_entity_id_event_soon[_StateEventDataT: EventStateEventData](
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[Event[_StateEventDataT]], Any]]],
|
||||
event: Event[_StateEventDataT],
|
||||
@ -343,7 +342,7 @@ def _async_dispatch_entity_id_event_soon(
|
||||
|
||||
|
||||
@callback
|
||||
def _async_dispatch_entity_id_event(
|
||||
def _async_dispatch_entity_id_event[_StateEventDataT: EventStateEventData](
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[Event[_StateEventDataT]], Any]]],
|
||||
event: Event[_StateEventDataT],
|
||||
@ -363,7 +362,7 @@ def _async_dispatch_entity_id_event(
|
||||
|
||||
|
||||
@callback
|
||||
def _async_state_filter(
|
||||
def _async_state_filter[_StateEventDataT: EventStateEventData](
|
||||
hass: HomeAssistant,
|
||||
callbacks: dict[str, list[HassJob[[Event[_StateEventDataT]], Any]]],
|
||||
event_data: _StateEventDataT,
|
||||
|
Loading…
x
Reference in New Issue
Block a user