code: def metaphone(self, words):
          
          for word in words:
              r = 0
              for w in double_metaphone(word):
                  if w:
                      w = w.strip()
                      if w:
                          r += 1
                          yield w
              if not r:
                  yield word
docs: Apply the double metaphone algorithm to the given words.
          Using metaphone allows the search index to tolerate
          misspellings and small typos.
  
          Example::
  
              >>> from walrus.search.metaphone import dm as metaphone
              >>> print metaphone('walrus')
              ('ALRS', 'FLRS')
  
              >>> print metaphone('python')
              ('P0N', 'PTN')
  
              >>> print metaphone('pithonn')
              ('P0N', 'PTN')