code: def equals(self, other):
          ''' Structural equality of models.
  
          Args:
              other (HasProps) : the other instance to compare to
  
          Returns:
              True, if properties are structurally equal, otherwise False
  
          '''
  
          # NOTE: don't try to use this to implement __eq__. Because then
          # you will be tempted to implement __hash__, which would interfere
          # with mutability of models. However, not implementing __hash__
          # will make bokeh unusable in Python 3, where proper implementation
          # of __hash__ is required when implementing __eq__.
          if not isinstance(other, self.__class__):
              return False
          else:
              return self.properties_with_values() == other.properties_with_values(f equals(self, other):
          ''' Structural equality of models.
  
          Args:
              other (HasProps) : the other instance to compare to
  
          Returns:
              True, if properties are structurally equal, otherwise False
  
          '''
  
          # NOTE: don't try to use this to implement __eq__. Because then
          # you will be tempted to implement __hash__, which would interfere
          # with mutability of models. However, not implementing __hash__
          # will make bokeh unusable in Python 3, where proper implementation
          # of __hash__ is required when implementing __eq__.
          if not isinstance(other, self.__class__):
              return False
          else:
              return self.properties_with_values() == other.properties_with_values()
docs: Structural equality of models.
  
          Args:
              other (HasProps) : the other instance to compare to
  
          Returns:
              True, if properties are structurally equal, otherwise False