neuron_explainer/pydantic/hashable_base_model.py (6 lines of code) (raw):

from .camel_case_base_model import CamelCaseBaseModel class HashableBaseModel(CamelCaseBaseModel): def __hash__(self) -> int: values = tuple(getattr(self, name) for name in self.__annotations__.keys()) # Convert lists to tuples. values = tuple(value if not isinstance(value, list) else tuple(value) for value in values) return hash(values)