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
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.start import async_at_started
from .coordinator import SpeedTestDataCoordinator
from .coordinator import SpeedTestConfigEntry, SpeedTestDataCoordinator
PLATFORMS = [Platform.SENSOR]
type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
async def async_setup_entry(
hass: HomeAssistant, config_entry: SpeedTestConfigEntry
@ -49,11 +47,15 @@ async def async_setup_entry(
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."""
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."""
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.core import callback
from . import SpeedTestConfigEntry
from .const import (
CONF_SERVER_ID,
CONF_SERVER_NAME,
@ -17,6 +16,7 @@ from .const import (
DEFAULT_SERVER,
DOMAIN,
)
from .coordinator import SpeedTestConfigEntry
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__)
type SpeedTestConfigEntry = ConfigEntry[SpeedTestDataCoordinator]
class SpeedTestDataCoordinator(DataUpdateCoordinator[dict[str, Any]]):
"""Get the latest data from speedtest.net."""
config_entry: ConfigEntry
config_entry: SpeedTestConfigEntry
def __init__(
self, hass: HomeAssistant, config_entry: ConfigEntry, api: speedtest.Speedtest
self,
hass: HomeAssistant,
config_entry: SpeedTestConfigEntry,
api: speedtest.Speedtest,
) -> None:
"""Initialize the data object."""
self.hass = hass
self.config_entry = config_entry
self.api = api
self.servers: dict[str, dict] = {DEFAULT_SERVER: {}}
super().__init__(
self.hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
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.update_coordinator import CoordinatorEntity
from . import SpeedTestConfigEntry
from .const import (
ATTR_BYTES_RECEIVED,
ATTR_BYTES_SENT,
@ -30,7 +29,7 @@ from .const import (
DEFAULT_NAME,
DOMAIN,
)
from .coordinator import SpeedTestDataCoordinator
from .coordinator import SpeedTestConfigEntry, SpeedTestDataCoordinator
@dataclass(frozen=True)