1 """Number entities for the SABnzbd integration."""
3 from __future__
import annotations
5 from collections.abc
import Awaitable, Callable
6 from dataclasses
import dataclass
8 from pysabnzbd
import SabnzbdApiException
12 NumberEntityDescription,
20 from .
import SabnzbdConfigEntry
21 from .const
import DOMAIN
22 from .coordinator
import SabnzbdUpdateCoordinator
23 from .entity
import SabnzbdEntity
26 @dataclass(frozen=True, kw_only=True)
28 """Class describing a SABnzbd number entities."""
30 set_fn: Callable[[SabnzbdUpdateCoordinator, float], Awaitable]
33 NUMBER_DESCRIPTIONS: tuple[SabnzbdNumberEntityDescription, ...] = (
36 translation_key=
"speedlimit",
41 native_unit_of_measurement=PERCENTAGE,
42 set_fn=
lambda coordinator, speed: (
43 coordinator.sab_api.set_speed_limit(
int(speed))
51 config_entry: SabnzbdConfigEntry,
52 async_add_entities: AddEntitiesCallback,
54 """Set up the SABnzbd number entity."""
55 coordinator = config_entry.runtime_data
58 SabnzbdNumber(coordinator, description)
for description
in NUMBER_DESCRIPTIONS
63 """Representation of a SABnzbd number."""
65 entity_description: SabnzbdNumberEntityDescription
69 """Return latest value for number."""
73 """Set the new number value."""
76 except SabnzbdApiException
as e:
78 translation_domain=DOMAIN,
79 translation_key=
"service_call_exception",
None async_set_native_value(self, float value)
None async_request_refresh(self)
None async_setup_entry(HomeAssistant hass, SabnzbdConfigEntry config_entry, AddEntitiesCallback async_add_entities)