Source code for fumus.utils.dict_item

[docs] class DictItem: """Helper record class for mapping key-value pairs""" def __init__(self, key, value): self._key = key self._value = value @property def key(self): return self._key @property def value(self): return self._map(self._value)
[docs] def _map(self, val): if isinstance(val, dict): return tuple(DictItem(k, self._map(v)) for k, v in val.items()) return val
[docs] def __repr__(self): key = f"{self.key}" if isinstance(self.key, str) else self.key value = f"{self.value}" if isinstance(self.value, str) else self.value return f"DictItem({key=}, {value=})"
[docs] def __eq__(self, other): if not isinstance(other, DictItem): raise TypeError(f"{other} is not a DictItem") return self._key == other._key and self._value == other._value # noqa
[docs] def __hash__(self): return hash((self._key, self._value))