Explicitly pass in the config_entry in speedtestdotnet coordinator (#137936)

explicitly pass in the config_entry in coordinator
pull/138202/head
Michael 2025-02-09 15:47:19 +01:00 committed by GitHub
parent 60a3dbae41
commit 8a7d96919d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 18 additions and 12 deletions

View File

@ -6,18 +6,16 @@ from functools import partial
import speedtest import speedtest
from homeassistant.config_entries import ConfigEntry, ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import Platform from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.start import async_at_started from homeassistant.helpers.start import async_at_started
from .coordinator import SpeedTestDataCoordinator from .coordinator import SpeedTestConfigEntry, SpeedTestDataCoordinator
PLATFORMS = [Platform.SENSOR] PLATFORMS = [Platform.SENSOR]
type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, config_entry: SpeedTestConfigEntry hass: HomeAssistant, config_entry: SpeedTestConfigEntry
@ -49,11 +47,15 @@ async def async_setup_entry(
return True return True
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: async def async_unload_entry(
hass: HomeAssistant, config_entry: SpeedTestConfigEntry
) -> bool:
"""Unload SpeedTest Entry from config_entry.""" """Unload SpeedTest Entry from config_entry."""
return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS) return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS)
async def update_listener(hass: HomeAssistant, config_entry: ConfigEntry) -> None: async def update_listener(
hass: HomeAssistant, config_entry: SpeedTestConfigEntry
) -> None:
"""Handle options update.""" """Handle options update."""
await hass.config_entries.async_reload(config_entry.entry_id) await hass.config_entries.async_reload(config_entry.entry_id)

View File

@ -9,7 +9,6 @@ import voluptuous as vol
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult, OptionsFlow from homeassistant.config_entries import ConfigFlow, ConfigFlowResult, OptionsFlow
from homeassistant.core import callback from homeassistant.core import callback
from . import SpeedTestConfigEntry
from .const import ( from .const import (
CONF_SERVER_ID, CONF_SERVER_ID,
CONF_SERVER_NAME, CONF_SERVER_NAME,
@ -17,6 +16,7 @@ from .const import (
DEFAULT_SERVER, DEFAULT_SERVER,
DOMAIN, DOMAIN,
) )
from .coordinator import SpeedTestConfigEntry
class SpeedTestFlowHandler(ConfigFlow, domain=DOMAIN): class SpeedTestFlowHandler(ConfigFlow, domain=DOMAIN):

View File

@ -14,23 +14,28 @@ from .const import CONF_SERVER_ID, DEFAULT_SCAN_INTERVAL, DEFAULT_SERVER, DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
class SpeedTestDataCoordinator(DataUpdateCoordinator[dict[str, Any]]): class SpeedTestDataCoordinator(DataUpdateCoordinator[dict[str, Any]]):
"""Get the latest data from speedtest.net.""" """Get the latest data from speedtest.net."""
config_entry: ConfigEntry config_entry: SpeedTestConfigEntry
def __init__( def __init__(
self, hass: HomeAssistant, config_entry: ConfigEntry, api: speedtest.Speedtest self,
hass: HomeAssistant,
config_entry: SpeedTestConfigEntry,
api: speedtest.Speedtest,
) -> None: ) -> None:
"""Initialize the data object.""" """Initialize the data object."""
self.hass = hass self.hass = hass
self.config_entry = config_entry
self.api = api self.api = api
self.servers: dict[str, dict] = {DEFAULT_SERVER: {}} self.servers: dict[str, dict] = {DEFAULT_SERVER: {}}
super().__init__( super().__init__(
self.hass, self.hass,
_LOGGER, _LOGGER,
config_entry=config_entry,
name=DOMAIN, name=DOMAIN,
update_interval=timedelta(minutes=DEFAULT_SCAN_INTERVAL), update_interval=timedelta(minutes=DEFAULT_SCAN_INTERVAL),
) )

View File

@ -19,7 +19,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import SpeedTestConfigEntry
from .const import ( from .const import (
ATTR_BYTES_RECEIVED, ATTR_BYTES_RECEIVED,
ATTR_BYTES_SENT, ATTR_BYTES_SENT,
@ -30,7 +29,7 @@ from .const import (
DEFAULT_NAME, DEFAULT_NAME,
DOMAIN, DOMAIN,
) )
from .coordinator import SpeedTestDataCoordinator from .coordinator import SpeedTestConfigEntry, SpeedTestDataCoordinator
@dataclass(frozen=True) @dataclass(frozen=True)