From 72d37036b9c6a70fee4540b32bbbd0a76aa94319 Mon Sep 17 00:00:00 2001 From: "Mr. Bubbles" Date: Fri, 19 Jul 2024 17:56:52 +0200 Subject: [PATCH] Remove filtering of user data in Habitica integration (#121759) Remove context-based userFields filtering --- homeassistant/components/habitica/const.py | 2 -- .../components/habitica/coordinator.py | 6 ++--- homeassistant/components/habitica/entity.py | 5 ++-- homeassistant/components/habitica/sensor.py | 24 ------------------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/homeassistant/components/habitica/const.py b/homeassistant/components/habitica/const.py index 5a567abe5de..4b10e9a705b 100644 --- a/homeassistant/components/habitica/const.py +++ b/homeassistant/components/habitica/const.py @@ -20,6 +20,4 @@ ATTR_DATA = "data" MANUFACTURER = "HabitRPG, Inc." NAME = "Habitica" -ADDITIONAL_USER_FIELDS: set[str] = {"lastCron"} - UNIT_TASKS = "tasks" diff --git a/homeassistant/components/habitica/coordinator.py b/homeassistant/components/habitica/coordinator.py index f72c11053da..9d0ebe651e3 100644 --- a/homeassistant/components/habitica/coordinator.py +++ b/homeassistant/components/habitica/coordinator.py @@ -17,7 +17,7 @@ from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError, ServiceValidationError from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -from .const import ADDITIONAL_USER_FIELDS, DOMAIN +from .const import DOMAIN _LOGGER = logging.getLogger(__name__) @@ -46,10 +46,8 @@ class HabiticaDataUpdateCoordinator(DataUpdateCoordinator[HabiticaData]): self.api = habitipy async def _async_update_data(self) -> HabiticaData: - user_fields = set(self.async_contexts()) | ADDITIONAL_USER_FIELDS - try: - user_response = await self.api.user.get(userFields=",".join(user_fields)) + user_response = await self.api.user.get() tasks_response = await self.api.tasks.user.get() tasks_response.extend(await self.api.tasks.user.get(type="completedTodos")) except ClientResponseError as error: diff --git a/homeassistant/components/habitica/entity.py b/homeassistant/components/habitica/entity.py index 7f29a698bad..932fec69f83 100644 --- a/homeassistant/components/habitica/entity.py +++ b/homeassistant/components/habitica/entity.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING from homeassistant.const import CONF_NAME, CONF_URL from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo @@ -22,10 +22,9 @@ class HabiticaBase(CoordinatorEntity[HabiticaDataUpdateCoordinator]): self, coordinator: HabiticaDataUpdateCoordinator, entity_description: EntityDescription, - context: Any = None, ) -> None: """Initialize a Habitica entity.""" - super().__init__(coordinator, context) + super().__init__(coordinator) if TYPE_CHECKING: assert coordinator.config_entry.unique_id self.entity_description = entity_description diff --git a/homeassistant/components/habitica/sensor.py b/homeassistant/components/habitica/sensor.py index b0514d27c11..6d1a11ed9c3 100644 --- a/homeassistant/components/habitica/sensor.py +++ b/homeassistant/components/habitica/sensor.py @@ -26,7 +26,6 @@ from homeassistant.helpers.typing import StateType from . import HabiticaConfigEntry from .const import DOMAIN, UNIT_TASKS -from .coordinator import HabiticaDataUpdateCoordinator from .entity import HabiticaBase from .util import entity_used_in @@ -38,7 +37,6 @@ class HabitipySensorEntityDescription(SensorEntityDescription): """Habitipy Sensor Description.""" value_fn: Callable[[dict[str, Any]], StateType] - ctx: str @dataclass(kw_only=True, frozen=True) @@ -72,7 +70,6 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( key=HabitipySensorEntity.DISPLAY_NAME, translation_key=HabitipySensorEntity.DISPLAY_NAME, value_fn=lambda user: user.get("profile", {}).get("name"), - ctx="profile", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.HEALTH, @@ -80,7 +77,6 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( native_unit_of_measurement="HP", suggested_display_precision=0, value_fn=lambda user: user.get("stats", {}).get("hp"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.HEALTH_MAX, @@ -88,7 +84,6 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( native_unit_of_measurement="HP", entity_registry_enabled_default=False, value_fn=lambda user: user.get("stats", {}).get("maxHealth"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.MANA, @@ -96,34 +91,29 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( native_unit_of_measurement="MP", suggested_display_precision=0, value_fn=lambda user: user.get("stats", {}).get("mp"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.MANA_MAX, translation_key=HabitipySensorEntity.MANA_MAX, native_unit_of_measurement="MP", value_fn=lambda user: user.get("stats", {}).get("maxMP"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.EXPERIENCE, translation_key=HabitipySensorEntity.EXPERIENCE, native_unit_of_measurement="XP", value_fn=lambda user: user.get("stats", {}).get("exp"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.EXPERIENCE_MAX, translation_key=HabitipySensorEntity.EXPERIENCE_MAX, native_unit_of_measurement="XP", value_fn=lambda user: user.get("stats", {}).get("toNextLevel"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.LEVEL, translation_key=HabitipySensorEntity.LEVEL, value_fn=lambda user: user.get("stats", {}).get("lvl"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.GOLD, @@ -131,7 +121,6 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( native_unit_of_measurement="GP", suggested_display_precision=2, value_fn=lambda user: user.get("stats", {}).get("gp"), - ctx="stats", ), HabitipySensorEntityDescription( key=HabitipySensorEntity.CLASS, @@ -139,7 +128,6 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( value_fn=lambda user: user.get("stats", {}).get("class"), device_class=SensorDeviceClass.ENUM, options=["warrior", "healer", "wizard", "rogue"], - ctx="stats", ), ) @@ -226,18 +214,6 @@ class HabitipySensor(HabiticaBase, SensorEntity): entity_description: HabitipySensorEntityDescription - def __init__( - self, - coordinator: HabiticaDataUpdateCoordinator, - entity_description: HabitipySensorEntityDescription, - ) -> None: - """Initialize a generic Habitica sensor.""" - super().__init__( - coordinator, - entity_description, - context=entity_description.ctx, - ) - @property def native_value(self) -> StateType: """Return the state of the device."""