Esempio n. 1
0
 def update_key_value(self, key):
     # type: (Any) -> None
     if key in self._ok:
         return
     for v in self.merge:
         if key in v[1]:
             ordereddict.__setitem__(self, key, v[1][key])
             return
     ordereddict.__delitem__(self, key)
Esempio n. 2
0
 def __delitem__(self, key):
     found = True
     for merged in getattr(self, merge_attrib, []):
         try:
             del merged[1][key]
             found = True
         except KeyError:
             pass
     try:
         ordereddict.__delitem__(self, key)
     except KeyError:
         if not found:
             raise
Esempio n. 3
0
 def __delitem__(self, key):
     found = True
     for merged in getattr(self, merge_attrib, []):
         try:
             del merged[1][key]
             found = True
         except KeyError:
             pass
     try:
         ordereddict.__delitem__(self, key)
     except KeyError:
         if not found:
             raise
Esempio n. 4
0
 def __delitem__(self, key):
     # type: (Any) -> None
     # for merged in getattr(self, merge_attrib, []):
     #     if key in merged[1]:
     #         value = merged[1][key]
     #         break
     # else:
     #     # not found in merged in stuff
     #     ordereddict.__delitem__(self, key)
     #    for referer in self._ref:
     #        referer.update_key_value(key)
     #    return
     #
     # ordereddict.__setitem__(self, key, value)  # merge might have different value
     # self._ok.discard(key)
     self._ok.discard(key)
     ordereddict.__delitem__(self, key)
     for referer in self._ref:
         referer.update_key_value(key)