Skip to content

Commit

Permalink
Fix #1781: compact_items expects dict but sometimes passed list (#1862)
Browse files Browse the repository at this point in the history
* Fix #1781: compact_items expects dict but sometimes passed list

* Make type checks guard clauses
  • Loading branch information
jacobswe authored Feb 14, 2024
1 parent 8f6a35e commit e610731
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions custom_components/mass/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,17 @@ def compact_item(item: dict[str, Any]) -> dict[str, Any]:
item[key] = compact_item(value)
elif isinstance(value, list):
for subitem in value:
if not isinstance(subitem, dict):
continue
compact_item(subitem)
# item[key] = [compact_item(x) if isinstance(x, dict) else x for x in value]
return item

dict_result: dict[str, list[dict[str, Any]]] = result.to_dict()
for media_type_key in dict_result:
for item in dict_result[media_type_key]:
if not isinstance(item, dict):
continue
compact_item(item)
return dict_result

Expand Down

0 comments on commit e610731

Please sign in to comment.