summary refs log tree commit diff
path: root/numberparser.py
diff options
context:
space:
mode:
authorClayton G. Hobbs <clay@lakeserv.net>2015-12-30 23:40:31 -0500
committerClayton G. Hobbs <clay@lakeserv.net>2015-12-30 23:40:31 -0500
commit557f0b60cb19b22fd79eb1f81a58139c4942f2c4 (patch)
tree88dd701200338d280e3b89a36dbda42bf2515b20 /numberparser.py
parente19d76f0515b291f9c6994bfd0faccccf5b894aa (diff)
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.
Diffstat (limited to 'numberparser.py')
-rw-r--r--numberparser.py14
1 files 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):