1 """Helper to test significant Media Player state changes."""
3 from __future__
import annotations
14 ATTR_ENTITY_PICTURE_LOCAL,
16 ATTR_MEDIA_POSITION_UPDATED_AT,
17 ATTR_MEDIA_VOLUME_LEVEL,
21 INSIGNIFICANT_ATTRIBUTES: set[str] = {
23 ATTR_MEDIA_POSITION_UPDATED_AT,
26 SIGNIFICANT_ATTRIBUTES: set[str] = {
27 ATTR_ENTITY_PICTURE_LOCAL,
29 } - INSIGNIFICANT_ATTRIBUTES
41 """Test if state significantly changed."""
42 if old_state != new_state:
46 {k: v
for k, v
in old_attrs.items()
if k
in SIGNIFICANT_ATTRIBUTES}.items()
49 {k: v
for k, v
in new_attrs.items()
if k
in SIGNIFICANT_ATTRIBUTES}.items()
51 changed_attrs: set[str] = {item[0]
for item
in old_attrs_s ^ new_attrs_s}
53 for attr_name
in changed_attrs:
54 if attr_name != ATTR_MEDIA_VOLUME_LEVEL:
57 old_attr_value = old_attrs.get(attr_name)
58 new_attr_value = new_attrs.get(attr_name)
bool check_absolute_change(float|None val1, float|None val2, float change)
bool check_valid_float(str|float value)