code: def compare(self, other, filter_fcn=None):
          
          if not isinstance(other, type(self)):
              return False
          if filter_fcn is None:
              def filter_unique(_, field):
                  """Filter function for unique fields"""
                  return not field.unique
              filter_fcn = filter_unique
  
          return self.to_json_dict(filter_fcn) == other.to_json_dict(filter_fcn)
docs: Returns True if properties can be compared in terms of eq.
          Entity's Fields can be filtered accordingly to 'filter_fcn'.
          This callable receives field's name as first parameter and field itself
          as second parameter.
          It must return True if field's value should be included on
          comparison and False otherwise. If not provided field's marked as
          unique will not be compared by default. 'id' and 'name' are examples of
          unique fields commonly ignored. Check Entities fields for fields marked
          with 'unique=True'
  
  
          :param other: entity to compare
          :param filter_fcn: callable
          :return: boolean