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.
|
|
import argparsefrom string import ascii_lowercase
import cmd2
from dictionary import DEFAULT, ALTERNATELOWERCASE = set(ascii_lowercase)DICTS = { 'default': DEFAULT, 'alt': ALTERNATE,}# argparsersdictionary_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()
|