Deprecate CONF_UNIT_SYSTEM_*** constants (#80320)

* Deprecate CONF_UNIT_SYSTEM_*** constants

* Adjust pylint plugin

* Add tests

* Remove single-use function

* Revert logic change

* Revert "Revert logic change"

This reverts commit 60959a0050.

* Tweak again
This commit is contained in:
epenet 2022-10-14 16:50:04 +02:00 committed by GitHub
parent 284893d942
commit bff5d1123f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 72 additions and 34 deletions

View file

@ -2,11 +2,12 @@
from __future__ import annotations
from numbers import Number
from typing import Final
import voluptuous as vol
from homeassistant.const import (
ACCUMULATED_PRECIPITATION,
CONF_UNIT_SYSTEM_IMPERIAL,
CONF_UNIT_SYSTEM_METRIC,
LENGTH,
LENGTH_INCHES,
LENGTH_KILOMETERS,
@ -41,6 +42,9 @@ from .unit_conversion import (
VolumeConverter,
)
_CONF_UNIT_SYSTEM_IMPERIAL: Final = "imperial"
_CONF_UNIT_SYSTEM_METRIC: Final = "metric"
LENGTH_UNITS = DistanceConverter.VALID_UNITS
MASS_UNITS: set[str] = {MASS_POUNDS, MASS_OUNCES, MASS_KILOGRAMS, MASS_GRAMS}
@ -207,8 +211,21 @@ class UnitSystem:
}
def get_unit_system(key: str) -> UnitSystem:
"""Get unit system based on key."""
if key == _CONF_UNIT_SYSTEM_IMPERIAL:
return IMPERIAL_SYSTEM
if key == _CONF_UNIT_SYSTEM_METRIC:
return METRIC_SYSTEM
raise ValueError(f"`{key}` is not a valid unit system key")
validate_unit_system = vol.All(
vol.Lower, vol.Any(_CONF_UNIT_SYSTEM_METRIC, _CONF_UNIT_SYSTEM_IMPERIAL)
)
METRIC_SYSTEM = UnitSystem(
CONF_UNIT_SYSTEM_METRIC,
_CONF_UNIT_SYSTEM_METRIC,
TEMP_CELSIUS,
LENGTH_KILOMETERS,
SPEED_METERS_PER_SECOND,
@ -219,7 +236,7 @@ METRIC_SYSTEM = UnitSystem(
)
IMPERIAL_SYSTEM = UnitSystem(
CONF_UNIT_SYSTEM_IMPERIAL,
_CONF_UNIT_SYSTEM_IMPERIAL,
TEMP_FAHRENHEIT,
LENGTH_MILES,
SPEED_MILES_PER_HOUR,