#!/usr/bin/env pypy3 # pylint: disable=superfluous-parens # superfluous-parens: Parentheses are good for clarity and portability # Note that this code is almost 4x faster on pypy 2.2 than cpython 3.3. """Compute anagrams for an input sentence.""" import sys import anagrams_mod def main(): """Find anagrams of an input sentence in sys.argv[1].""" original_sentence = " ".join(word.strip() for word in sys.argv[1:]).lower() original_sentence_sans_blanks = "".join( word.strip() for word in sys.argv[1:] ).lower() if not original_sentence_sans_blanks.isalpha(): sys.stderr.write( "{}: Sorry, only alphabetic sentences are allowed:\n".format(sys.argv[0]) ) sys.stderr.write("no punctuation, no digits, no special characters\n") sys.exit(1) with open("/usr/share/dict/words", "r", encoding="utf-8") as dictionary_file: anagrams_mod.find_anagrams( to_stdout=True, dictionary_file=dictionary_file, original_sentence_string=original_sentence, ) main()