You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

54 lines
1.4 KiB

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):
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()