Use DistanceConverter in components (#80182)

* Use DistanceConverter in components

* Adjust for METRIC_SYSTEM
This commit is contained in:
epenet 2022-10-12 21:33:38 +02:00 committed by GitHub
parent 0daa5b55b5
commit 503434e538
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 26 additions and 14 deletions

View File

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_RADIUS, CONF_RADIUS,
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES, LENGTH_MILES,
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
@ -19,7 +20,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .const import ( from .const import (
CONF_CATEGORIES, CONF_CATEGORIES,
@ -88,7 +89,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
radius = config_entry.data[CONF_RADIUS] radius = config_entry.data[CONF_RADIUS]
if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL: if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES) radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms. # Create feed entity manager for all platforms.
manager = GdacsFeedEntityManager(hass, config_entry, radius) manager = GdacsFeedEntityManager(hass, config_entry, radius)
feeds[config_entry.entry_id] = manager feeds[config_entry.entry_id] = manager

View File

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_RADIUS, CONF_RADIUS,
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES, LENGTH_MILES,
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
@ -19,7 +20,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .const import ( from .const import (
CONF_MINIMUM_MAGNITUDE, CONF_MINIMUM_MAGNITUDE,
@ -95,7 +96,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
radius = config_entry.data[CONF_RADIUS] radius = config_entry.data[CONF_RADIUS]
if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL: if hass.config.units.name == CONF_UNIT_SYSTEM_IMPERIAL:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES) radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms. # Create feed entity manager for all platforms.
manager = GeonetnzQuakesFeedEntityManager(hass, config_entry, radius) manager = GeonetnzQuakesFeedEntityManager(hass, config_entry, radius)
feeds[config_entry.entry_id] = manager feeds[config_entry.entry_id] = manager

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
CONF_UNIT_SYSTEM, CONF_UNIT_SYSTEM,
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS,
LENGTH_MILES, LENGTH_MILES,
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
@ -22,7 +23,7 @@ from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
from homeassistant.util.unit_system import METRIC_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .config_flow import configured_instances from .config_flow import configured_instances
from .const import DEFAULT_RADIUS, DEFAULT_SCAN_INTERVAL, DOMAIN, FEED, PLATFORMS from .const import DEFAULT_RADIUS, DEFAULT_SCAN_INTERVAL, DOMAIN, FEED, PLATFORMS
@ -85,7 +86,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
radius = config_entry.data[CONF_RADIUS] radius = config_entry.data[CONF_RADIUS]
unit_system = config_entry.data[CONF_UNIT_SYSTEM] unit_system = config_entry.data[CONF_UNIT_SYSTEM]
if unit_system == CONF_UNIT_SYSTEM_IMPERIAL: if unit_system == CONF_UNIT_SYSTEM_IMPERIAL:
radius = METRIC_SYSTEM.length(radius, LENGTH_MILES) radius = DistanceConverter.convert(radius, LENGTH_MILES, LENGTH_KILOMETERS)
# Create feed entity manager for all platforms. # Create feed entity manager for all platforms.
manager = GeonetnzVolcanoFeedEntityManager(hass, config_entry, radius, unit_system) manager = GeonetnzVolcanoFeedEntityManager(hass, config_entry, radius, unit_system)
hass.data[DOMAIN][FEED][config_entry.entry_id] = manager hass.data[DOMAIN][FEED][config_entry.entry_id] = manager

View File

@ -11,12 +11,13 @@ from homeassistant.const import (
ATTR_LONGITUDE, ATTR_LONGITUDE,
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_KILOMETERS, LENGTH_KILOMETERS,
LENGTH_MILES,
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt from homeassistant.util import dt
from homeassistant.util.unit_system import IMPERIAL_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .const import ( from .const import (
ATTR_ACTIVITY, ATTR_ACTIVITY,
@ -114,7 +115,9 @@ class GeonetnzVolcanoSensor(SensorEntity):
# Convert distance if not metric system. # Convert distance if not metric system.
if self._unit_system == CONF_UNIT_SYSTEM_IMPERIAL: if self._unit_system == CONF_UNIT_SYSTEM_IMPERIAL:
self._distance = round( self._distance = round(
IMPERIAL_SYSTEM.length(feed_entry.distance_to_home, LENGTH_KILOMETERS), DistanceConverter.convert(
feed_entry.distance_to_home, LENGTH_KILOMETERS, LENGTH_MILES
),
1, 1,
) )
else: else:

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
CONF_UNIT_SYSTEM, CONF_UNIT_SYSTEM,
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
LENGTH_METERS, LENGTH_METERS,
LENGTH_MILES,
Platform, Platform,
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -23,7 +24,7 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.location import find_coordinates from homeassistant.helpers.location import find_coordinates
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt from homeassistant.util import dt
from homeassistant.util.unit_system import IMPERIAL_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .const import ( from .const import (
ATTR_DESTINATION, ATTR_DESTINATION,
@ -179,7 +180,9 @@ class HereTravelTimeDataUpdateCoordinator(DataUpdateCoordinator):
traffic_time = summary["trafficTime"] traffic_time = summary["trafficTime"]
if self.config.units == CONF_UNIT_SYSTEM_IMPERIAL: if self.config.units == CONF_UNIT_SYSTEM_IMPERIAL:
# Convert to miles. # Convert to miles.
distance = IMPERIAL_SYSTEM.length(distance, LENGTH_METERS) distance = DistanceConverter.convert(
distance, LENGTH_METERS, LENGTH_MILES
)
else: else:
# Convert to kilometers # Convert to kilometers
distance = distance / 1000 distance = distance / 1000

View File

@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.icon import icon_for_battery_level from homeassistant.helpers.icon import icon_for_battery_level
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util.unit_system import IMPERIAL_SYSTEM, METRIC_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from . import LeafEntity from . import LeafEntity
from .const import ( from .const import (
@ -123,7 +123,7 @@ class LeafRangeSensor(LeafEntity, SensorEntity):
return None return None
if not self.car.hass.config.units.is_metric or self.car.force_miles: if not self.car.hass.config.units.is_metric or self.car.force_miles:
ret = IMPERIAL_SYSTEM.length(ret, METRIC_SYSTEM.length_unit) ret = DistanceConverter.convert(ret, LENGTH_KILOMETERS, LENGTH_MILES)
return round(ret) return round(ret)

View File

@ -19,6 +19,7 @@ from homeassistant.const import (
CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_IMPERIAL,
EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STARTED,
LENGTH_KILOMETERS, LENGTH_KILOMETERS,
LENGTH_MILES,
TIME_MINUTES, TIME_MINUTES,
) )
from homeassistant.core import CoreState, HomeAssistant from homeassistant.core import CoreState, HomeAssistant
@ -26,7 +27,7 @@ from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.location import find_coordinates from homeassistant.helpers.location import find_coordinates
from homeassistant.util.unit_system import IMPERIAL_SYSTEM from homeassistant.util.unit_conversion import DistanceConverter
from .const import ( from .const import (
CONF_AVOID_FERRIES, CONF_AVOID_FERRIES,
@ -245,7 +246,9 @@ class WazeTravelTimeData:
if units == CONF_UNIT_SYSTEM_IMPERIAL: if units == CONF_UNIT_SYSTEM_IMPERIAL:
# Convert to miles. # Convert to miles.
self.distance = IMPERIAL_SYSTEM.length(distance, LENGTH_KILOMETERS) self.distance = DistanceConverter.convert(
distance, LENGTH_KILOMETERS, LENGTH_MILES
)
else: else:
self.distance = distance self.distance = distance