mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Explicitly pass in the config_entry in transmission coordinator (#137891)
explicitly pass in the config_entry in coordinator
This commit is contained in:
parent
3153c54d1a
commit
cce03d2ee7
@ -15,7 +15,7 @@ from transmission_rpc.error import (
|
|||||||
)
|
)
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
|
from homeassistant.config_entries import ConfigEntryState
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
CONF_ID,
|
CONF_ID,
|
||||||
@ -54,7 +54,7 @@ from .const import (
|
|||||||
SERVICE_START_TORRENT,
|
SERVICE_START_TORRENT,
|
||||||
SERVICE_STOP_TORRENT,
|
SERVICE_STOP_TORRENT,
|
||||||
)
|
)
|
||||||
from .coordinator import TransmissionDataUpdateCoordinator
|
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
|
||||||
from .errors import AuthenticationError, CannotConnect, UnknownError
|
from .errors import AuthenticationError, CannotConnect, UnknownError
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
@ -117,8 +117,6 @@ SERVICE_STOP_TORRENT_SCHEMA = vol.All(
|
|||||||
|
|
||||||
CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
|
CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
|
||||||
|
|
||||||
type TransmissionConfigEntry = ConfigEntry[TransmissionDataUpdateCoordinator]
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
||||||
"""Set up the Transmission component."""
|
"""Set up the Transmission component."""
|
||||||
@ -167,12 +165,16 @@ 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: TransmissionConfigEntry
|
||||||
|
) -> bool:
|
||||||
"""Unload Transmission Entry from config_entry."""
|
"""Unload Transmission 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 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."""
|
"""Migrate an old config entry."""
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"Migrating from version %s.%s",
|
"Migrating from version %s.%s",
|
||||||
|
@ -27,17 +27,21 @@ from .const import (
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
type TransmissionConfigEntry = ConfigEntry[TransmissionDataUpdateCoordinator]
|
||||||
|
|
||||||
|
|
||||||
class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
|
class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
|
||||||
"""Transmission dataupdate coordinator class."""
|
"""Transmission dataupdate coordinator class."""
|
||||||
|
|
||||||
config_entry: ConfigEntry
|
config_entry: TransmissionConfigEntry
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, hass: HomeAssistant, entry: ConfigEntry, api: transmission_rpc.Client
|
self,
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entry: TransmissionConfigEntry,
|
||||||
|
api: transmission_rpc.Client,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the Transmission RPC API."""
|
"""Initialize the Transmission RPC API."""
|
||||||
self.config_entry = entry
|
|
||||||
self.api = api
|
self.api = api
|
||||||
self.host = entry.data[CONF_HOST]
|
self.host = entry.data[CONF_HOST]
|
||||||
self._session: transmission_rpc.Session | None = None
|
self._session: transmission_rpc.Session | None = None
|
||||||
@ -47,6 +51,7 @@ class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
|
|||||||
self.torrents: list[transmission_rpc.Torrent] = []
|
self.torrents: list[transmission_rpc.Torrent] = []
|
||||||
super().__init__(
|
super().__init__(
|
||||||
hass,
|
hass,
|
||||||
|
config_entry=entry,
|
||||||
name=f"{DOMAIN} - {self.host}",
|
name=f"{DOMAIN} - {self.host}",
|
||||||
logger=_LOGGER,
|
logger=_LOGGER,
|
||||||
update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL),
|
update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL),
|
||||||
|
@ -21,7 +21,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 TransmissionConfigEntry
|
|
||||||
from .const import (
|
from .const import (
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
STATE_ATTR_TORRENT_INFO,
|
STATE_ATTR_TORRENT_INFO,
|
||||||
@ -30,7 +29,7 @@ from .const import (
|
|||||||
STATE_UP_DOWN,
|
STATE_UP_DOWN,
|
||||||
SUPPORTED_ORDER_MODES,
|
SUPPORTED_ORDER_MODES,
|
||||||
)
|
)
|
||||||
from .coordinator import TransmissionDataUpdateCoordinator
|
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
|
||||||
|
|
||||||
MODES: dict[str, list[str] | None] = {
|
MODES: dict[str, list[str] | None] = {
|
||||||
"started_torrents": ["downloading"],
|
"started_torrents": ["downloading"],
|
||||||
|
@ -10,9 +10,8 @@ from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from . import TransmissionConfigEntry
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import TransmissionDataUpdateCoordinator
|
from .coordinator import TransmissionConfigEntry, TransmissionDataUpdateCoordinator
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True, kw_only=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user