mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 08:17:08 +00:00
Bump aiounifi to v45 (#90250)
* Bump aiounifi to v45 * Replace local TypeVar with library TypeVar
This commit is contained in:
parent
e17cefd61c
commit
7f1fff12ef
@ -12,6 +12,7 @@ import aiounifi
|
|||||||
from aiounifi.interfaces.api_handlers import ItemEvent
|
from aiounifi.interfaces.api_handlers import ItemEvent
|
||||||
from aiounifi.interfaces.clients import Clients
|
from aiounifi.interfaces.clients import Clients
|
||||||
from aiounifi.interfaces.devices import Devices
|
from aiounifi.interfaces.devices import Devices
|
||||||
|
from aiounifi.models.api import ApiItemT
|
||||||
from aiounifi.models.client import Client
|
from aiounifi.models.client import Client
|
||||||
from aiounifi.models.device import Device
|
from aiounifi.models.device import Device
|
||||||
from aiounifi.models.event import Event, EventKey
|
from aiounifi.models.event import Event, EventKey
|
||||||
@ -26,7 +27,6 @@ import homeassistant.util.dt as dt_util
|
|||||||
from .const import DOMAIN as UNIFI_DOMAIN
|
from .const import DOMAIN as UNIFI_DOMAIN
|
||||||
from .controller import UniFiController
|
from .controller import UniFiController
|
||||||
from .entity import (
|
from .entity import (
|
||||||
DataT,
|
|
||||||
HandlerT,
|
HandlerT,
|
||||||
UnifiEntity,
|
UnifiEntity,
|
||||||
UnifiEntityDescription,
|
UnifiEntityDescription,
|
||||||
@ -136,7 +136,7 @@ def async_device_heartbeat_timedelta_fn(
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiEntityTrackerDescriptionMixin(Generic[HandlerT, DataT]):
|
class UnifiEntityTrackerDescriptionMixin(Generic[HandlerT, ApiItemT]):
|
||||||
"""Device tracker local functions."""
|
"""Device tracker local functions."""
|
||||||
|
|
||||||
heartbeat_timedelta_fn: Callable[[UniFiController, str], timedelta]
|
heartbeat_timedelta_fn: Callable[[UniFiController, str], timedelta]
|
||||||
@ -147,8 +147,8 @@ class UnifiEntityTrackerDescriptionMixin(Generic[HandlerT, DataT]):
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiTrackerEntityDescription(
|
class UnifiTrackerEntityDescription(
|
||||||
UnifiEntityDescription[HandlerT, DataT],
|
UnifiEntityDescription[HandlerT, ApiItemT],
|
||||||
UnifiEntityTrackerDescriptionMixin[HandlerT, DataT],
|
UnifiEntityTrackerDescriptionMixin[HandlerT, ApiItemT],
|
||||||
):
|
):
|
||||||
"""Class describing UniFi device tracker entity."""
|
"""Class describing UniFi device tracker entity."""
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ async def async_setup_entry(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class UnifiScannerEntity(UnifiEntity[HandlerT, DataT], ScannerEntity):
|
class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
|
||||||
"""Representation of a UniFi scanner."""
|
"""Representation of a UniFi scanner."""
|
||||||
|
|
||||||
entity_description: UnifiTrackerEntityDescription
|
entity_description: UnifiTrackerEntityDescription
|
||||||
|
@ -13,12 +13,8 @@ from aiounifi.interfaces.api_handlers import (
|
|||||||
ItemEvent,
|
ItemEvent,
|
||||||
UnsubscribeType,
|
UnsubscribeType,
|
||||||
)
|
)
|
||||||
from aiounifi.interfaces.outlets import Outlets
|
from aiounifi.models.api import ApiItemT
|
||||||
from aiounifi.interfaces.ports import Ports
|
|
||||||
from aiounifi.models.api import APIItem
|
|
||||||
from aiounifi.models.event import Event, EventKey
|
from aiounifi.models.event import Event, EventKey
|
||||||
from aiounifi.models.outlet import Outlet
|
|
||||||
from aiounifi.models.port import Port
|
|
||||||
|
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
@ -31,8 +27,7 @@ from .const import ATTR_MANUFACTURER
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .controller import UniFiController
|
from .controller import UniFiController
|
||||||
|
|
||||||
DataT = TypeVar("DataT", bound=APIItem | Outlet | Port)
|
HandlerT = TypeVar("HandlerT", bound=APIHandler)
|
||||||
HandlerT = TypeVar("HandlerT", bound=APIHandler | Outlets | Ports)
|
|
||||||
SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
|
SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +59,7 @@ def async_device_device_info_fn(api: aiounifi.Controller, obj_id: str) -> Device
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiDescription(Generic[HandlerT, DataT]):
|
class UnifiDescription(Generic[HandlerT, ApiItemT]):
|
||||||
"""Validate and load entities from different UniFi handlers."""
|
"""Validate and load entities from different UniFi handlers."""
|
||||||
|
|
||||||
allowed_fn: Callable[[UniFiController, str], bool]
|
allowed_fn: Callable[[UniFiController, str], bool]
|
||||||
@ -73,21 +68,21 @@ class UnifiDescription(Generic[HandlerT, DataT]):
|
|||||||
device_info_fn: Callable[[aiounifi.Controller, str], DeviceInfo | None]
|
device_info_fn: Callable[[aiounifi.Controller, str], DeviceInfo | None]
|
||||||
event_is_on: tuple[EventKey, ...] | None
|
event_is_on: tuple[EventKey, ...] | None
|
||||||
event_to_subscribe: tuple[EventKey, ...] | None
|
event_to_subscribe: tuple[EventKey, ...] | None
|
||||||
name_fn: Callable[[DataT], str | None]
|
name_fn: Callable[[ApiItemT], str | None]
|
||||||
object_fn: Callable[[aiounifi.Controller, str], DataT]
|
object_fn: Callable[[aiounifi.Controller, str], ApiItemT]
|
||||||
supported_fn: Callable[[UniFiController, str], bool | None]
|
supported_fn: Callable[[UniFiController, str], bool | None]
|
||||||
unique_id_fn: Callable[[UniFiController, str], str]
|
unique_id_fn: Callable[[UniFiController, str], str]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiEntityDescription(EntityDescription, UnifiDescription[HandlerT, DataT]):
|
class UnifiEntityDescription(EntityDescription, UnifiDescription[HandlerT, ApiItemT]):
|
||||||
"""UniFi Entity Description."""
|
"""UniFi Entity Description."""
|
||||||
|
|
||||||
|
|
||||||
class UnifiEntity(Entity, Generic[HandlerT, DataT]):
|
class UnifiEntity(Entity, Generic[HandlerT, ApiItemT]):
|
||||||
"""Representation of a UniFi entity."""
|
"""Representation of a UniFi entity."""
|
||||||
|
|
||||||
entity_description: UnifiEntityDescription[HandlerT, DataT]
|
entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
|
||||||
_attr_should_poll = False
|
_attr_should_poll = False
|
||||||
|
|
||||||
_attr_unique_id: str
|
_attr_unique_id: str
|
||||||
@ -96,7 +91,7 @@ class UnifiEntity(Entity, Generic[HandlerT, DataT]):
|
|||||||
self,
|
self,
|
||||||
obj_id: str,
|
obj_id: str,
|
||||||
controller: UniFiController,
|
controller: UniFiController,
|
||||||
description: UnifiEntityDescription[HandlerT, DataT],
|
description: UnifiEntityDescription[HandlerT, ApiItemT],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up UniFi switch entity."""
|
"""Set up UniFi switch entity."""
|
||||||
self._obj_id = obj_id
|
self._obj_id = obj_id
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["aiounifi"],
|
"loggers": ["aiounifi"],
|
||||||
"quality_scale": "platinum",
|
"quality_scale": "platinum",
|
||||||
"requirements": ["aiounifi==44"],
|
"requirements": ["aiounifi==45"],
|
||||||
"ssdp": [
|
"ssdp": [
|
||||||
{
|
{
|
||||||
"manufacturer": "Ubiquiti Networks",
|
"manufacturer": "Ubiquiti Networks",
|
||||||
|
@ -14,6 +14,7 @@ import aiounifi
|
|||||||
from aiounifi.interfaces.api_handlers import ItemEvent
|
from aiounifi.interfaces.api_handlers import ItemEvent
|
||||||
from aiounifi.interfaces.clients import Clients
|
from aiounifi.interfaces.clients import Clients
|
||||||
from aiounifi.interfaces.ports import Ports
|
from aiounifi.interfaces.ports import Ports
|
||||||
|
from aiounifi.models.api import ApiItemT
|
||||||
from aiounifi.models.client import Client
|
from aiounifi.models.client import Client
|
||||||
from aiounifi.models.port import Port
|
from aiounifi.models.port import Port
|
||||||
|
|
||||||
@ -33,7 +34,6 @@ import homeassistant.util.dt as dt_util
|
|||||||
from .const import DOMAIN as UNIFI_DOMAIN
|
from .const import DOMAIN as UNIFI_DOMAIN
|
||||||
from .controller import UniFiController
|
from .controller import UniFiController
|
||||||
from .entity import (
|
from .entity import (
|
||||||
DataT,
|
|
||||||
HandlerT,
|
HandlerT,
|
||||||
UnifiEntity,
|
UnifiEntity,
|
||||||
UnifiEntityDescription,
|
UnifiEntityDescription,
|
||||||
@ -80,17 +80,17 @@ def async_client_device_info_fn(api: aiounifi.Controller, obj_id: str) -> Device
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiSensorEntityDescriptionMixin(Generic[HandlerT, DataT]):
|
class UnifiSensorEntityDescriptionMixin(Generic[HandlerT, ApiItemT]):
|
||||||
"""Validate and load entities from different UniFi handlers."""
|
"""Validate and load entities from different UniFi handlers."""
|
||||||
|
|
||||||
value_fn: Callable[[UniFiController, DataT], datetime | float | str | None]
|
value_fn: Callable[[UniFiController, ApiItemT], datetime | float | str | None]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiSensorEntityDescription(
|
class UnifiSensorEntityDescription(
|
||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
UnifiEntityDescription[HandlerT, DataT],
|
UnifiEntityDescription[HandlerT, ApiItemT],
|
||||||
UnifiSensorEntityDescriptionMixin[HandlerT, DataT],
|
UnifiSensorEntityDescriptionMixin[HandlerT, ApiItemT],
|
||||||
):
|
):
|
||||||
"""Class describing UniFi sensor entity."""
|
"""Class describing UniFi sensor entity."""
|
||||||
|
|
||||||
@ -182,10 +182,10 @@ async def async_setup_entry(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class UnifiSensorEntity(UnifiEntity[HandlerT, DataT], SensorEntity):
|
class UnifiSensorEntity(UnifiEntity[HandlerT, ApiItemT], SensorEntity):
|
||||||
"""Base representation of a UniFi sensor."""
|
"""Base representation of a UniFi sensor."""
|
||||||
|
|
||||||
entity_description: UnifiSensorEntityDescription[HandlerT, DataT]
|
entity_description: UnifiSensorEntityDescription[HandlerT, ApiItemT]
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_update_state(self, event: ItemEvent, obj_id: str) -> None:
|
def async_update_state(self, event: ItemEvent, obj_id: str) -> None:
|
||||||
|
@ -17,6 +17,7 @@ from aiounifi.interfaces.clients import Clients
|
|||||||
from aiounifi.interfaces.dpi_restriction_groups import DPIRestrictionGroups
|
from aiounifi.interfaces.dpi_restriction_groups import DPIRestrictionGroups
|
||||||
from aiounifi.interfaces.outlets import Outlets
|
from aiounifi.interfaces.outlets import Outlets
|
||||||
from aiounifi.interfaces.ports import Ports
|
from aiounifi.interfaces.ports import Ports
|
||||||
|
from aiounifi.models.api import ApiItemT
|
||||||
from aiounifi.models.client import Client, ClientBlockRequest
|
from aiounifi.models.client import Client, ClientBlockRequest
|
||||||
from aiounifi.models.device import (
|
from aiounifi.models.device import (
|
||||||
DeviceSetOutletRelayRequest,
|
DeviceSetOutletRelayRequest,
|
||||||
@ -47,7 +48,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|||||||
from .const import ATTR_MANUFACTURER, DOMAIN as UNIFI_DOMAIN
|
from .const import ATTR_MANUFACTURER, DOMAIN as UNIFI_DOMAIN
|
||||||
from .controller import UniFiController
|
from .controller import UniFiController
|
||||||
from .entity import (
|
from .entity import (
|
||||||
DataT,
|
|
||||||
HandlerT,
|
HandlerT,
|
||||||
SubscriptionT,
|
SubscriptionT,
|
||||||
UnifiEntity,
|
UnifiEntity,
|
||||||
@ -136,18 +136,18 @@ async def async_poe_port_control_fn(
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiSwitchEntityDescriptionMixin(Generic[HandlerT, DataT]):
|
class UnifiSwitchEntityDescriptionMixin(Generic[HandlerT, ApiItemT]):
|
||||||
"""Validate and load entities from different UniFi handlers."""
|
"""Validate and load entities from different UniFi handlers."""
|
||||||
|
|
||||||
control_fn: Callable[[aiounifi.Controller, str, bool], Coroutine[Any, Any, None]]
|
control_fn: Callable[[aiounifi.Controller, str, bool], Coroutine[Any, Any, None]]
|
||||||
is_on_fn: Callable[[UniFiController, DataT], bool]
|
is_on_fn: Callable[[UniFiController, ApiItemT], bool]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class UnifiSwitchEntityDescription(
|
class UnifiSwitchEntityDescription(
|
||||||
SwitchEntityDescription,
|
SwitchEntityDescription,
|
||||||
UnifiEntityDescription[HandlerT, DataT],
|
UnifiEntityDescription[HandlerT, ApiItemT],
|
||||||
UnifiSwitchEntityDescriptionMixin[HandlerT, DataT],
|
UnifiSwitchEntityDescriptionMixin[HandlerT, ApiItemT],
|
||||||
):
|
):
|
||||||
"""Class describing UniFi switch entity."""
|
"""Class describing UniFi switch entity."""
|
||||||
|
|
||||||
@ -255,10 +255,10 @@ async def async_setup_entry(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class UnifiSwitchEntity(UnifiEntity[HandlerT, DataT], SwitchEntity):
|
class UnifiSwitchEntity(UnifiEntity[HandlerT, ApiItemT], SwitchEntity):
|
||||||
"""Base representation of a UniFi switch."""
|
"""Base representation of a UniFi switch."""
|
||||||
|
|
||||||
entity_description: UnifiSwitchEntityDescription[HandlerT, DataT]
|
entity_description: UnifiSwitchEntityDescription[HandlerT, ApiItemT]
|
||||||
only_event_for_state_change = False
|
only_event_for_state_change = False
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
|
@ -291,7 +291,7 @@ aiosyncthing==0.5.1
|
|||||||
aiotractive==0.5.5
|
aiotractive==0.5.5
|
||||||
|
|
||||||
# homeassistant.components.unifi
|
# homeassistant.components.unifi
|
||||||
aiounifi==44
|
aiounifi==45
|
||||||
|
|
||||||
# homeassistant.components.vlc_telnet
|
# homeassistant.components.vlc_telnet
|
||||||
aiovlc==0.1.0
|
aiovlc==0.1.0
|
||||||
|
@ -272,7 +272,7 @@ aiosyncthing==0.5.1
|
|||||||
aiotractive==0.5.5
|
aiotractive==0.5.5
|
||||||
|
|
||||||
# homeassistant.components.unifi
|
# homeassistant.components.unifi
|
||||||
aiounifi==44
|
aiounifi==45
|
||||||
|
|
||||||
# homeassistant.components.vlc_telnet
|
# homeassistant.components.vlc_telnet
|
||||||
aiovlc==0.1.0
|
aiovlc==0.1.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user