1 """Helper functions for the CO2 Signal integration."""
3 from __future__
import annotations
5 from collections.abc
import Mapping
8 from aioelectricitymaps
import ElectricityMaps
9 from aioelectricitymaps.models
import CarbonIntensityResponse
18 config: Mapping[str, Any],
19 ) -> CarbonIntensityResponse:
20 """Fetch the latest carbon intensity based on country code or location coordinates."""
21 if CONF_COUNTRY_CODE
in config:
22 return await em.latest_carbon_intensity_by_country_code(
23 code=config[CONF_COUNTRY_CODE]
26 return await em.latest_carbon_intensity_by_coordinates(
27 lat=config.get(CONF_LATITUDE, hass.config.latitude),
28 lon=config.get(CONF_LONGITUDE, hass.config.longitude),
CarbonIntensityResponse fetch_latest_carbon_intensity(HomeAssistant hass, ElectricityMaps em, Mapping[str, Any] config)