12345678910111213141516171819202122232425262728 |
- try:
- from collections import ChainMap
- except ImportError:
- from pandas.compat.chainmap_impl import ChainMap
- class DeepChainMap(ChainMap):
- def __setitem__(self, key, value):
- for mapping in self.maps:
- if key in mapping:
- mapping[key] = value
- return
- self.maps[0][key] = value
- def __delitem__(self, key):
- for mapping in self.maps:
- if key in mapping:
- del mapping[key]
- return
- raise KeyError(key)
- # override because the m parameter is introduced in Python 3.4
- def new_child(self, m=None):
- if m is None:
- m = {}
- return self.__class__(m, *self.maps)
|