From 557f0b60cb19b22fd79eb1f81a58139c4942f2c4 Mon Sep 17 00:00:00 2001 From: "Clayton G. Hobbs" Date: Wed, 30 Dec 2015 23:40:31 -0500 Subject: Fixed the guaranteed-dictionary-update bug It wasn't actually guaranteed, it turns out. I was iterating over dictionary keys, which is done in arbitrary order. The result was that in different executions of the program, the corpus was generated differently, so the hashes differed, and the language had to be updated. Sorting the keys before adding them to the list of number-words fixed the problem. --- numberparser.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/numberparser.py b/numberparser.py index fb04027..a87698d 100644 --- a/numberparser.py +++ b/numberparser.py @@ -65,20 +65,20 @@ class NumberParser: def __init__(self): self.number_words = [] - for word in self.zero: + for word in sorted(self.zero.keys()): self.number_words.append(word) - for word in self.ones: + for word in sorted(self.ones.keys()): self.number_words.append(word) - for word in self.special_ones: + for word in sorted(self.special_ones.keys()): self.number_words.append(word) - for word in self.tens: + for word in sorted(self.tens.keys()): self.number_words.append(word) - for word in self.hundred: + for word in sorted(self.hundred.keys()): self.number_words.append(word) - for word in self.exp: + for word in sorted(self.exp.keys()): self.number_words.append(word) self.mandatory_number_words = self.number_words.copy() - for word in self.allowed: + for word in sorted(self.allowed): self.number_words.append(word) def parse_number(self, text_line): -- cgit 1.4.1