/_unsorted/core/.builtins/__builtins__.py
Python | 20 lines | 14 code | 4 blank | 2 comment | 3 complexity | e56e9b18a6979f4541ea920b81e6d4a7 MD5 | raw file
- class WriteOnceDict(dict):
- """Override _handler to customize collision behavior."""
- def _handler(self, key, value):
- # warning.warn("...")
- raise KeyError("already set %s" % key)
- def _bypass(self, *args, **kwargs):
- super(type(self), self).update(*args, **kwargs)
- def update(self, other):
- if hasattr(other, "items"):
- other = other.items()
- for k, v in other:
- self[k] = v
- def __setitem__(self, key, value):
- if key in self:
- self._handler(key, value)
- super(type(self), self).__setitem__(key, value)