Mercurial > hg > bitsyauth
diff bitsyauth/dictionary.py @ 41:d4522af2c6e5
refactor
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sat, 28 Dec 2013 12:56:06 -0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bitsyauth/dictionary.py Sat Dec 28 12:56:06 2013 -0800 @@ -0,0 +1,29 @@ +import random + +class Dictionary(object): + def __init__(self, dictionary_file='/usr/share/dict/american-english'): + self.dictionary_file = dictionary_file + with open(dictionary_file) as f: + self.wordlist = [] + for line in f: + line = line.strip() + if not line or not line.isalpha(): + continue + line = line.lower() + self.wordlist.append(line) + self.wordlist = tuple(self.wordlist) + self._min_lengths = {} + + def random_word(self, min_length=5): + """ + choose random word + + min_length -- minimum word length + """ + + if min_length not in self._min_lengths: + # cache + self._min_lengths[min_lengths] = [i for i in self.wordlist + if len(i) > min_length] + return random.Random().choice(self._min_lengths[min_length]) +