From 9ead071202ba6c42417f02bab8afc6d10da9a1ae Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 4 Feb 2023 10:04:44 +0100 Subject: [PATCH] Tiny cleanup in Number base entity (#87339) --- homeassistant/components/number/__init__.py | 38 +++++++++++++-------- homeassistant/components/number/const.py | 11 ++++++ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/number/__init__.py b/homeassistant/components/number/__init__.py index 0cdb9465360..980b9131f8e 100644 --- a/homeassistant/components/number/__init__.py +++ b/homeassistant/components/number/__init__.py @@ -8,15 +8,14 @@ from datetime import timedelta import inspect import logging from math import ceil, floor -from typing import Any, Final, final +from typing import Any, final import voluptuous as vol -from homeassistant.backports.enum import StrEnum from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_MODE, CONF_UNIT_OF_MEASUREMENT, UnitOfTemperature from homeassistant.core import HomeAssistant, ServiceCall, callback -from homeassistant.helpers.config_validation import ( # noqa: F401 +from homeassistant.helpers.config_validation import ( PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE, ) @@ -37,27 +36,36 @@ from .const import ( SERVICE_SET_VALUE, UNIT_CONVERTERS, NumberDeviceClass, + NumberMode, ) from .websocket_api import async_setup as async_setup_ws_api -SCAN_INTERVAL = timedelta(seconds=30) +_LOGGER = logging.getLogger(__name__) ENTITY_ID_FORMAT = DOMAIN + ".{}" MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) -_LOGGER = logging.getLogger(__name__) - -DEVICE_CLASSES_SCHEMA: Final = vol.All(vol.Lower, vol.Coerce(NumberDeviceClass)) - - -class NumberMode(StrEnum): - """Modes for number entities.""" - - AUTO = "auto" - BOX = "box" - SLIDER = "slider" +SCAN_INTERVAL = timedelta(seconds=30) +__all__ = [ + "ATTR_MAX", + "ATTR_MIN", + "ATTR_STEP", + "ATTR_VALUE", + "DEFAULT_MAX_VALUE", + "DEFAULT_MIN_VALUE", + "DEFAULT_STEP", + "DOMAIN", + "PLATFORM_SCHEMA_BASE", + "PLATFORM_SCHEMA", + "NumberDeviceClass", + "NumberEntity", + "NumberEntityDescription", + "NumberExtraStoredData", + "NumberMode", + "RestoreNumber", +] # mypy: disallow-any-generics diff --git a/homeassistant/components/number/const.py b/homeassistant/components/number/const.py index b3f31ac23fe..91c1306c226 100644 --- a/homeassistant/components/number/const.py +++ b/homeassistant/components/number/const.py @@ -3,6 +3,8 @@ from __future__ import annotations from typing import Final +import voluptuous as vol + from homeassistant.backports.enum import StrEnum from homeassistant.const import ( CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, @@ -342,6 +344,15 @@ class NumberDeviceClass(StrEnum): """ +class NumberMode(StrEnum): + """Modes for number entities.""" + + AUTO = "auto" + BOX = "box" + SLIDER = "slider" + + +DEVICE_CLASSES_SCHEMA: Final = vol.All(vol.Lower, vol.Coerce(NumberDeviceClass)) DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]] = { NumberDeviceClass.APPARENT_POWER: set(UnitOfApparentPower), NumberDeviceClass.AQI: {None},