code: def extract_names(sender):
      
      sender = to_unicode(sender, precise=True)
      # Remove non-alphabetical characters
      sender = "".join([char if char.isalpha() else ' ' for char in sender])
      # Remove too short words and words from "black" list i.e.
      # words like `ru`, `gmail`, `com`, `org`, etc.
      sender = [word for word in sender.split() if len(word) > 1 and
                not word in BAD_SENDER_NAMES]
      # Remove duplicates
      names = list(set(sender))
      return names
docs: Tries to extract sender's names from `From:` header.
  
      It could extract not only the actual names but e.g.
      the name of the company, parts of email, etc.
  
      >>> extract_names('Sergey N.  Obukhov <serobnic@mail.ru>')
      ['Sergey', 'Obukhov', 'serobnic']
      >>> extract_names('')
      []