|
|
|
@ -1,13 +1,54 @@ |
|
|
|
import argparse |
|
|
|
from string import ascii_lowercase |
|
|
|
|
|
|
|
import cmd2 |
|
|
|
|
|
|
|
from dictionary import DEFAULT, ALTERNATE |
|
|
|
LOWERCASE = set(ascii_lowercase) |
|
|
|
DICTS = { |
|
|
|
'default': DEFAULT, |
|
|
|
'alt': ALTERNATE, |
|
|
|
} |
|
|
|
# argparsers |
|
|
|
dictionary_manage_parser = argparse.ArgumentParser() |
|
|
|
commands = dictionary_manage_parser.add_mutually_exclusive_group() |
|
|
|
commands.add_argument( |
|
|
|
'-l', '--list', action='store_true', help='List available dictionaries') |
|
|
|
commands.add_argument( |
|
|
|
'-s', '--switch', help='Dictionary to swap to') |
|
|
|
|
|
|
|
letter_set_manage = argparse.ArgumentParser() |
|
|
|
letter_set_manage.add_argument('new_letters') |
|
|
|
|
|
|
|
|
|
|
|
class MainLoop(cmd2.Cmd): |
|
|
|
"""Loop for wordscape commands |
|
|
|
|
|
|
|
""" |
|
|
|
prompt = "?$ " |
|
|
|
|
|
|
|
def __init__(self): |
|
|
|
letters = None |
|
|
|
removed = set() |
|
|
|
|
|
|
|
self.dict = 'default' |
|
|
|
self.letters = [l for l in input( |
|
|
|
"Enter letters: ").lower() if l in LOWERCASE] |
|
|
|
self.prompt = ', '.join(self.letters) + ' ' + MainLoop.prompt |
|
|
|
super().__init__() |
|
|
|
|
|
|
|
@cmd2.with_argparser(dictionary_manage_parser) |
|
|
|
def do_dict(self, args): |
|
|
|
"""list/switch dict""" |
|
|
|
if args.list: |
|
|
|
print('\n'.join( |
|
|
|
('{} {}'.format('*' if key == self.dict else ' ', |
|
|
|
key) for key in DICTS.keys()))) |
|
|
|
else: |
|
|
|
DICTS[args.switch] |
|
|
|
self.dict = args.switch |
|
|
|
|
|
|
|
@cmd2.with_argparser(letter_set_manage) |
|
|
|
def do_change_letters(self, args): |
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
MainLoop().cmdloop() |