code: def sort_by(self, attr_or_key, direction='asc'):
          
          # work out the direction
          if direction in ('+', 'asc', gtk.SORT_ASCENDING):
              direction = gtk.SORT_ASCENDING
          elif direction in ('-', 'desc', gtk.SORT_DESCENDING):
              direction = gtk.SORT_DESCENDING
          else:
              raise AttributeError('unrecognised direction')
          if callable(attr_or_key):
              # is a key
              sort_func = self._key_sort_func
          else:
              # it's an attribute
              sort_func = self._attr_sort_func
          self.model.set_default_sort_func(sort_func, attr_or_key)
          self.model.set_sort_column_id(-1, direction)
docs: Sort the view by an attribute or key
  
          :param attr_or_key: The attribute or key to sort by
          :param direction: Either `asc` or `desc` indicating the direction of
                            sorting