code: def get_authors(self):
          
          if self._authors is None:
              # Sort messages with date first (by date ascending), and those
              # without a date last.
              msgs = sorted(self.get_messages().keys(),
                            key=lambda m: m.get_date() or datetime.max)
  
              orderby = settings.get('thread_authors_order_by')
              self._authors = []
              if orderby == 'latest_message':
                  for m in msgs:
                      pair = m.get_author()
                      if pair in self._authors:
                          self._authors.remove(pair)
                      self._authors.append(pair)
              else:  # i.e. first_message
                  for m in msgs:
                      pair = m.get_author()
                      if pair not in self._authors:
                          self._authors.append(pair)
  
          return self._authors
docs: returns a list of authors (name, addr) of the messages.
          The authors are ordered by msg date and unique (by name/addr).
  
          :rtype: list of (str, str)