Explicitly pass in the config_entry in transmission coordinator (#137891)

explicitly pass in the config_entry in coordinator
pull/138060/head
Michael 2025-02-09 14:26:09 +01:00 committed by GitHub
parent 3153c54d1a
commit cce03d2ee7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 18 additions and 13 deletions

View File

@ -15,7 +15,7 @@ from transmission_rpc.error import (
)
import voluptuous as vol
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import (
CONF_HOST,
CONF_ID,
@ -54,7 +54,7 @@ from .const import (
SERVICE_START_TORRENT,
SERVICE_STOP_TORRENT,
)
from .coordinator import TransmissionDataUpdateCoordinator
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
from .errors import AuthenticationError, CannotConnect, UnknownError
_LOGGER = logging.getLogger(__name__)
@ -117,8 +117,6 @@ SERVICE_STOP_TORRENT_SCHEMA = vol.All(
CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
type TransmissionConfigEntry = ConfigEntry[TransmissionDataUpdateCoordinator]
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the Transmission component."""
@ -167,12 +165,16 @@ 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: TransmissionConfigEntry
) -> bool:
"""Unload Transmission Entry from config_entry."""
return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS)
async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_migrate_entry(
hass: HomeAssistant, config_entry: TransmissionConfigEntry
) -> bool:
"""Migrate an old config entry."""
_LOGGER.debug(
"Migrating from version %s.%s",

View File

@ -27,17 +27,21 @@ from .const import (
_LOGGER = logging.getLogger(__name__)
type TransmissionConfigEntry = ConfigEntry[TransmissionDataUpdateCoordinator]
class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
"""Transmission dataupdate coordinator class."""
config_entry: ConfigEntry
config_entry: TransmissionConfigEntry
def __init__(
self, hass: HomeAssistant, entry: ConfigEntry, api: transmission_rpc.Client
self,
hass: HomeAssistant,
entry: TransmissionConfigEntry,
api: transmission_rpc.Client,
) -> None:
"""Initialize the Transmission RPC API."""
self.config_entry = entry
self.api = api
self.host = entry.data[CONF_HOST]
self._session: transmission_rpc.Session | None = None
@ -47,6 +51,7 @@ class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
self.torrents: list[transmission_rpc.Torrent] = []
super().__init__(
hass,
config_entry=entry,
name=f"{DOMAIN} - {self.host}",
logger=_LOGGER,
update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL),

View File

@ -21,7 +21,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import TransmissionConfigEntry
from .const import (
DOMAIN,
STATE_ATTR_TORRENT_INFO,
@ -30,7 +29,7 @@ from .const import (
STATE_UP_DOWN,
SUPPORTED_ORDER_MODES,
)
from .coordinator import TransmissionDataUpdateCoordinator
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
MODES: dict[str, list[str] | None] = {
"started_torrents": ["downloading"],

View File

@ -10,9 +10,8 @@ from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import TransmissionConfigEntry
from .const import DOMAIN
from .coordinator import TransmissionDataUpdateCoordinator
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
@dataclass(frozen=True, kw_only=True)