def modify(): '''Modify an existing word.''' try: conword = input("Enter word in conlang: ") if Library.wordExists(conlang=conword): word = Library.findConWord(conword, pop=False) outputWord(word) else: print("Word does not exist") return keys = list(word.keys()) keys.remove("id") keys.append("NEW") keys.append("DELETE") another = True while another: key = IOHelper.chooseOption("Enter field to modify", keys) if key == "NEW": word = addCustomFields(word, prompt=False) elif key == "DELETE": keys.remove("NEW") keys.remove("DELETE") keys.remove("english") keys.remove("word") key = IOHelper.chooseOption("Enter field to delete", keys) keys.remove(key) del word[key] keys.insert(0, "english") keys.insert(0, "word") keys.append("NEW") keys.append("DELETE") else: if key in ["word", "english"]: word[key] = input("Enter new value: ") else: values = Library.getFieldOptions(key) values.append("other") v = IOHelper.chooseOption("Enter word value", values) if v == "other": v = input("Enter new value: ") word[key] = v another = not IOHelper.yesNo("Finished modifying") # Delete word if finished modifying and add new word Library.findConWord(conword, pop=True) Library.addWord(word) except KeyboardInterrupt: pass
def decline(): ''' Allows user to select word to decline and declension, then outputs the declined word. ''' word = input("Enter word (in conlang) to decline: ") try: result = Library.findConWord(word) except LookupError: print("Word not found in database") return 1 prompt = "Select declension" dec = IOHelper.createMenu(prompt, Library.getAvailableDeclensions()) output = Library.declineWord(result, dec) outputWord(output, "conlang")