Add a list helper to create unique list of dictionaries and tests for it.

This commit is contained in:
Clemens Schwaighofer
2026-01-27 14:42:19 +09:00
parent 51669d3c5f
commit 1a978f786d
3 changed files with 280 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
List type helpers
"""
import json
from typing import Any, Sequence
@@ -44,4 +45,26 @@ def is_list_in_list(
# Get the difference and extract just the values
return [item for item, _ in set_a - set_b]
def make_unique_list_of_dicts(dict_list: list[Any]) -> list[Any]:
"""
Create a list of unique dictionary entries
Arguments:
dict_list {list[Any]} -- _description_
Returns:
list[Any] -- _description_
"""
try:
# try json dumps, can fail with int and str index types
return list({json.dumps(d, sort_keys=True, ensure_ascii=True): d for d in dict_list}.values())
except TypeError:
# Fallback for non-serializable entries, slow but works
unique: list[Any] = []
for d in dict_list:
if d not in unique:
unique.append(d)
return unique
# __END__