code: def _update_data(self, data, update_original=False, remove_missing=False):
          
          self._data.update(dict((key, self._deserialize(key, value))
                                 for key, value in data.items()))
  
          # In certain situations, we want to treat missing keys as removals
          if remove_missing:
              for key in set(self._data.keys()) - set(data.keys()):
                  self._data[key] = None
  
          if update_original:
              self._original_data = copy.deepcopy(self._data)
docs: Low level update of the internal _data dict. Data which are coming as
          updates should already be serialized. If update_original is True, the
          original_data dict is updated as well.