def misspelledCheckIntegrity(misspelledList): wordRe = re.compile(wordMatchRe) for i, word in enumerate(misspelledList): try: if not wordRe.match(word): raiseError(misspelledFormattingError + str(i)) except TypeError: raiseError(misspelledFormattingError + str(i))
def makeJsonReq(self, url, postdata): """ postdata: dict """ cj, content = self.makeHttpReq(url, postdata) ret = json.loads(content) if ret["error"]: errors.raiseError(ret["error"]) return ret
def getMisspelledWords(misspelledFilename): #read in the input file try: f = open(misspelledFilename, 'r') except IOError: raiseError(misspelledFileNotFoundError) misspelled = f.read() misspelledWordsList = misspelled.split('\n') verify.misspelledCheckIntegrity(misspelledWordsList) return misspelledWordsList
def getWordFrequencies(frequenciesFilename): try: f = open(frequenciesFilename, 'r') except IOError: raiseError(frequenciesFileNotFoundError) frequencies = f.read() frequencyList = frequencies.split('\n') for i, item in enumerate(frequencyList): frequencyList[i] = item.split(',') verify.frequenciesCheckIntegrity(frequencyList) sorted(frequencyList, key=lambda item: int(item[1])) return frequencyList
def frequenciesCheckIntegrity(frequencyList): wordRe = re.compile(wordMatchRe) for i, item in enumerate(frequencyList): #check that list is formatted correctly if not isinstance(item, list) or len(item) != 2: raiseError(frequenciesFormattingError + str(i)) word = item[0] frequency = item[1] #check that first entry is a word if not wordRe.match(word): raiseError(frequenciesFormattingError + str(i)) #check that second entry is an int try: int(frequency) except ValueError: raiseError(frequenciesFormattingError + str(i))
def onAnyEvent(self, *args, **kw): sid = syncer_tls.sid if not self.validate(sid): errors.raiseError(errors.sessionnotfound) return True
def formatSuggestion(word, suggestedWords): return "* " + word + ": " + str(suggestedWords) + "\n" def suggestWords(misspelledWords, wordFrequencies, suggestionsFilename): #open suggestions file suggestions = open(suggestionsFilename, 'w') for word in misspelledWords: #find an array of the suggested words sorted by frequency suggestedWords = getSuggestedWords(word, wordFrequencies) suggestions.write(formatSuggestion(word, suggestedWords)) if __name__ == "__main__": try: misspelledFilename = str(sys.argv[1]) except IndexError: raiseError(misspelledFileNotEnteredError) #try to read in the misspelled words file misspelledWords = parse.getMisspelledWords(misspelledFilename) wordFrequenciesFilename = "word_frequency.csv" #try to read in the word frequencies file wordFrequencies = parse.getWordFrequencies(wordFrequenciesFilename) suggestionsFilename = "suggestions.txt" suggestWords(misspelledWords, wordFrequencies, suggestionsFilename)