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_lowercaseimport cmd2
from dictionary import DEFAULT, ALTERNATE
LOWERCASE = 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()
|