mirror of
https://github.com/Andre0512/hon.git
synced 2024-12-22 18:55:31 +00:00
29 lines
805 B
Python
29 lines
805 B
Python
|
import logging
|
||
|
from contextlib import suppress
|
||
|
|
||
|
from .typedefs import HonEntityDescription, HonOptionEntityDescription, T
|
||
|
|
||
|
_LOGGER = logging.getLogger(__name__)
|
||
|
|
||
|
|
||
|
def unique_entities(
|
||
|
base_entities: tuple[T, ...],
|
||
|
new_entities: tuple[T, ...],
|
||
|
) -> tuple[T, ...]:
|
||
|
result = list(base_entities)
|
||
|
existing_entities = [entity.key for entity in base_entities]
|
||
|
entity: HonEntityDescription
|
||
|
for entity in new_entities:
|
||
|
if entity.key not in existing_entities:
|
||
|
result.append(entity)
|
||
|
return tuple(result)
|
||
|
|
||
|
|
||
|
def get_readable(
|
||
|
description: HonOptionEntityDescription, value: float | str
|
||
|
) -> float | str:
|
||
|
if description.option_list is not None:
|
||
|
with suppress(ValueError):
|
||
|
return description.option_list.get(int(value), value)
|
||
|
return value
|