From 98710e6c918bb7f5cd14bd2d2eb70b866ff7dc01 Mon Sep 17 00:00:00 2001 From: "Mr. Bubbles" Date: Tue, 28 May 2024 10:25:39 +0200 Subject: [PATCH] Fix some typing errors in Bring integration (#115641) Fix typing errors --- homeassistant/components/bring/coordinator.py | 14 +++++-------- homeassistant/components/bring/todo.py | 20 +++++++++---------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/homeassistant/components/bring/coordinator.py b/homeassistant/components/bring/coordinator.py index 783781cf6c0..1447338d408 100644 --- a/homeassistant/components/bring/coordinator.py +++ b/homeassistant/components/bring/coordinator.py @@ -11,7 +11,7 @@ from bring_api.exceptions import ( BringParseException, BringRequestException, ) -from bring_api.types import BringList, BringPurchase +from bring_api.types import BringItemsResponse, BringList from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -22,12 +22,9 @@ from .const import DOMAIN _LOGGER = logging.getLogger(__name__) -class BringData(BringList): +class BringData(BringList, BringItemsResponse): """Coordinator data class.""" - purchase_items: list[BringPurchase] - recently_items: list[BringPurchase] - class BringDataUpdateCoordinator(DataUpdateCoordinator[dict[str, BringData]]): """A Bring Data Update Coordinator.""" @@ -56,7 +53,7 @@ class BringDataUpdateCoordinator(DataUpdateCoordinator[dict[str, BringData]]): "Unable to retrieve data from bring, authentication failed" ) from e - list_dict = {} + list_dict: dict[str, BringData] = {} for lst in lists_response["lists"]: try: items = await self.bring.get_list(lst["listUuid"]) @@ -66,8 +63,7 @@ class BringDataUpdateCoordinator(DataUpdateCoordinator[dict[str, BringData]]): ) from e except BringParseException as e: raise UpdateFailed("Unable to parse response from bring") from e - lst["purchase_items"] = items["purchase"] - lst["recently_items"] = items["recently"] - list_dict[lst["listUuid"]] = lst + else: + list_dict[lst["listUuid"]] = BringData(**lst, **items) return list_dict diff --git a/homeassistant/components/bring/todo.py b/homeassistant/components/bring/todo.py index 56527389dd5..f3ba70f6cc5 100644 --- a/homeassistant/components/bring/todo.py +++ b/homeassistant/components/bring/todo.py @@ -107,7 +107,7 @@ class BringTodoListEntity( description=item["specification"] or "", status=TodoItemStatus.NEEDS_ACTION, ) - for item in self.bring_list["purchase_items"] + for item in self.bring_list["purchase"] ), *( TodoItem( @@ -116,7 +116,7 @@ class BringTodoListEntity( description=item["specification"] or "", status=TodoItemStatus.COMPLETED, ) - for item in self.bring_list["recently_items"] + for item in self.bring_list["recently"] ), ] @@ -130,7 +130,7 @@ class BringTodoListEntity( try: await self.coordinator.bring.save_item( self.bring_list["listUuid"], - item.summary, + item.summary or "", item.description or "", str(uuid.uuid4()), ) @@ -165,12 +165,12 @@ class BringTodoListEntity( bring_list = self.bring_list bring_purchase_item = next( - (i for i in bring_list["purchase_items"] if i["uuid"] == item.uid), + (i for i in bring_list["purchase"] if i["uuid"] == item.uid), None, ) bring_recently_item = next( - (i for i in bring_list["recently_items"] if i["uuid"] == item.uid), + (i for i in bring_list["recently"] if i["uuid"] == item.uid), None, ) @@ -185,8 +185,8 @@ class BringTodoListEntity( await self.coordinator.bring.batch_update_list( bring_list["listUuid"], BringItem( - itemId=item.summary, - spec=item.description, + itemId=item.summary or "", + spec=item.description or "", uuid=item.uid, ), BringItemOperation.ADD @@ -206,13 +206,13 @@ class BringTodoListEntity( [ BringItem( itemId=current_item["itemId"], - spec=item.description, + spec=item.description or "", uuid=item.uid, operation=BringItemOperation.REMOVE, ), BringItem( - itemId=item.summary, - spec=item.description, + itemId=item.summary or "", + spec=item.description or "", uuid=str(uuid.uuid4()), operation=BringItemOperation.ADD if item.status == TodoItemStatus.NEEDS_ACTION