Small cleanups to number entity (#107624)

This commit is contained in:
J. Nick Koston 2024-01-08 20:20:15 -10:00 committed by GitHub
parent 82dc8260c6
commit 05d205ae7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 13 deletions

View File

@ -424,6 +424,7 @@ class NumberEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
native_unit_of_measurement = self.native_unit_of_measurement native_unit_of_measurement = self.native_unit_of_measurement
unit_of_measurement = self.unit_of_measurement unit_of_measurement = self.unit_of_measurement
if native_unit_of_measurement != unit_of_measurement: if native_unit_of_measurement != unit_of_measurement:
if TYPE_CHECKING:
assert native_unit_of_measurement assert native_unit_of_measurement
assert unit_of_measurement assert unit_of_measurement
@ -432,14 +433,13 @@ class NumberEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
# Suppress ValueError (Could not convert value to float) # Suppress ValueError (Could not convert value to float)
with suppress(ValueError): with suppress(ValueError):
value_new: float = UNIT_CONVERTERS[device_class].convert( value_new: float = UNIT_CONVERTERS[device_class].converter_factory(
value,
native_unit_of_measurement, native_unit_of_measurement,
unit_of_measurement, unit_of_measurement,
) )(value)
# Round to the wanted precision # Round to the wanted precision
value = method(value_new, prec) return method(value_new, prec)
return value return value
@ -453,20 +453,21 @@ class NumberEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
native_unit_of_measurement = self.native_unit_of_measurement native_unit_of_measurement = self.native_unit_of_measurement
unit_of_measurement = self.unit_of_measurement unit_of_measurement = self.unit_of_measurement
if native_unit_of_measurement != unit_of_measurement: if native_unit_of_measurement != unit_of_measurement:
if TYPE_CHECKING:
assert native_unit_of_measurement assert native_unit_of_measurement
assert unit_of_measurement assert unit_of_measurement
value = UNIT_CONVERTERS[device_class].convert( return UNIT_CONVERTERS[device_class].converter_factory(
value,
unit_of_measurement, unit_of_measurement,
native_unit_of_measurement, native_unit_of_measurement,
) )(value)
return value return value
@callback @callback
def async_registry_entry_updated(self) -> None: def async_registry_entry_updated(self) -> None:
"""Run when the entity registry entry has been updated.""" """Run when the entity registry entry has been updated."""
if TYPE_CHECKING:
assert self.registry_entry assert self.registry_entry
if ( if (
(number_options := self.registry_entry.options.get(DOMAIN)) (number_options := self.registry_entry.options.get(DOMAIN))

View File

@ -475,7 +475,7 @@ DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]] = {
NumberDeviceClass.WIND_SPEED: set(UnitOfSpeed), NumberDeviceClass.WIND_SPEED: set(UnitOfSpeed),
} }
UNIT_CONVERTERS: dict[str, type[BaseUnitConverter]] = { UNIT_CONVERTERS: dict[NumberDeviceClass, type[BaseUnitConverter]] = {
NumberDeviceClass.TEMPERATURE: TemperatureConverter, NumberDeviceClass.TEMPERATURE: TemperatureConverter,
} }