def choose_words(wordlist, numwords):
- s = []
- for i in xrange(numwords):
- s.append(rng().choice(wordlist))
- return s
+ """
+ Choose numwords randomly from wordlist
+ """
+
+ return [rng().choice(wordlist) for i in xrange(numwords)]
+def try_input(prompt, validate):
+ """
+ Suppress stack trace on user cancel and validate input with supplied
+ validate callable.
+ """
+
+ try:
+ answer = raw_input(prompt)
+ except (KeyboardInterrupt, EOFError):
+ # user cancelled
+ print("")
+ sys.exit(0)
+
+ # validate input
+ return validate(answer)
+
+
def generate_xkcdpassword(wordlist,
numwords=6,
interactive=False,