docs: def get_diff(self, other_mapping):
          """
          Returns a Multifield with diff fields. If not changes, returns None
          :param other_mapping:
          :return: a Multifield or None
          """
          result = MultiField(name=self.name)
          new_fields = set(self.fields.keys())
          if not isinstance(other_mapping, MultiField):
              n_mapping = MultiField(name=self.name)
              n_mapping.add_fields([other_mapping])
              other_mapping = n_mapping
  
          old_fields = set(other_mapping.fields.keys())
          #we propagate new fields
          added = new_fields - old_fields
          if added:
              result.add_fields([(add, self.fields[add]) for add in added])
              #TODO: raise in field changed
          if len(result.fields) > 0:
              return result
          return None