From 516cb3163546a2a3a27d48aa6b3d5b2a505d6eba Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Tue, 3 Jan 2023 23:07:59 +0100 Subject: [PATCH] Fix multi inheritance with CoordinatorEntity (#85053) --- homeassistant/components/bsblan/climate.py | 2 +- homeassistant/components/elgato/light.py | 2 +- homeassistant/components/scrape/sensor.py | 2 +- homeassistant/helpers/update_coordinator.py | 9 +++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/bsblan/climate.py b/homeassistant/components/bsblan/climate.py index cea58822ba8..fcff6a925e5 100644 --- a/homeassistant/components/bsblan/climate.py +++ b/homeassistant/components/bsblan/climate.py @@ -90,7 +90,7 @@ class BSBLANClimate( ) -> None: """Initialize BSBLAN climate device.""" super().__init__(client, device, info, static, entry) - super(CoordinatorEntity, self).__init__(coordinator) + CoordinatorEntity.__init__(self, coordinator) self._attr_unique_id = f"{format_mac(device.MAC)}-climate" self._attr_min_temp = float(static.min_temp.value) diff --git a/homeassistant/components/elgato/light.py b/homeassistant/components/elgato/light.py index 6453950a814..2a9f63a83d7 100644 --- a/homeassistant/components/elgato/light.py +++ b/homeassistant/components/elgato/light.py @@ -76,7 +76,7 @@ class ElgatoLight( ) -> None: """Initialize Elgato Light.""" super().__init__(client, info, mac) - super(CoordinatorEntity, self).__init__(coordinator) + CoordinatorEntity.__init__(self, coordinator) self._attr_min_mireds = 143 self._attr_max_mireds = 344 diff --git a/homeassistant/components/scrape/sensor.py b/homeassistant/components/scrape/sensor.py index 3d6d1db0ea3..22184a17b80 100644 --- a/homeassistant/components/scrape/sensor.py +++ b/homeassistant/components/scrape/sensor.py @@ -203,7 +203,7 @@ class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], TemplateSensor): value_template: Template | None, ) -> None: """Initialize a web scrape sensor.""" - super(CoordinatorEntity, self).__init__(coordinator) + CoordinatorEntity.__init__(self, coordinator) TemplateSensor.__init__( self, hass, diff --git a/homeassistant/helpers/update_coordinator.py b/homeassistant/helpers/update_coordinator.py index 9c6747515a9..c1ffc5bddeb 100644 --- a/homeassistant/helpers/update_coordinator.py +++ b/homeassistant/helpers/update_coordinator.py @@ -400,6 +400,15 @@ class BaseCoordinatorEntity(entity.Entity, Generic[_BaseDataUpdateCoordinatorT]) class CoordinatorEntity(BaseCoordinatorEntity[_DataUpdateCoordinatorT]): """A class for entities using DataUpdateCoordinator.""" + def __init__( + self, coordinator: _DataUpdateCoordinatorT, context: Any = None + ) -> None: + """Create the entity with a DataUpdateCoordinator. Passthrough to BaseCoordinatorEntity. + + Necessary to bind TypeVar to correct scope. + """ + super().__init__(coordinator, context) + @property def available(self) -> bool: """Return if entity is available."""