in evalbench/scorers/comparator.py [0:0]
def convert_to_set(results: list[dict]):
"""
Converts a list of dictionaries to a set of tuples sorted according to their key
Two dictionaries are considered the same if all their key-value pairs are the same.
Dictionaries can contain lists as values.
Args:
1. results - The list of dictionaries.
Returns:
1. results_set - A set of sorted tuples
"""
def make_hashable(item):
"""Recursively converts items to hashable types (tuples)."""
if isinstance(item, list):
return tuple(make_hashable(x) for x in item)
elif isinstance(item, dict):
return tuple(sorted((k, make_hashable(v)) for k, v in item.items()))
else:
return item
results_set = {make_hashable(d) for d in results}
return results_set