code: def update(self, other=None, **kwargs):
          
          if other is None:
              other = ()
  
          if hasattr(other, 'keys'):
              for key in other:
                  self._update(key, other[key])
          else:
              for key,value in other:
                  self._update(key, value)
  
          for key,value in six.iteritems(kwargs):
              self._update(key, value)
docs: x.update(E, **F) -> None. update x from trie/dict/iterable E or F.
          If E has a .keys() method, does:     for k in E: x[k] = E[k]
          If E lacks .keys() method, does:     for (k, v) in E: x[k] = v
          In either case, this is followed by: for k in F: x[k] = F[k]