Add type hints and cleanup.
authorScott <[email protected]>
Wed, 26 Jan 2022 18:31:53 +0000 (10:31 -0800)
committerScott <[email protected]>
Wed, 26 Jan 2022 18:31:53 +0000 (10:31 -0800)
unscrambler.py

index 6cebacf79b7555212ae8ada2042177fa9ace3b10..05f810a225ccf88b5e0232669179170fc6978b33 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 
 import logging
-from typing import Dict
+from typing import Dict, Mapping
 
 import config
 import decorator_utils
@@ -121,7 +121,10 @@ class Unscrambler(object):
 
     # 52 bits
     @staticmethod
-    def _compute_word_fingerprint(word: str, population) -> int:
+    def _compute_word_fingerprint(
+            word: str,
+            population: Mapping[str, int]
+    ) -> int:
         fp = 0
         for pair in sorted(population.items(), key=lambda x: x[1], reverse=True):
             letter = pair[0]
@@ -136,7 +139,11 @@ class Unscrambler(object):
 
     # 32 bits
     @staticmethod
-    def _compute_word_letter_sig(letter_sigs, word: str, population) -> int:
+    def _compute_word_letter_sig(
+            letter_sigs: Mapping[str, int],
+            word: str,
+            population: Mapping[str, int],
+    ) -> int:
         sig = 0
         for pair in sorted(population.items(), key=lambda x: x[1], reverse=True):
             letter = pair[0]
@@ -214,7 +221,12 @@ class Unscrambler(object):
                 word = words_by_sigs[sig]
                 print(f'0x{sig:x}+{word}', file=f)
 
-    def lookup(self, word: str, *, include_fuzzy_matches=False) -> Dict[str, bool]:
+    def lookup(
+            self,
+            word: str,
+            *,
+            include_fuzzy_matches: bool = False
+    ) -> Dict[str, bool]:
         """Looks up a potentially scrambled word optionally including near
         "fuzzy" matches.
 
@@ -226,7 +238,12 @@ class Unscrambler(object):
         sig = Unscrambler.compute_word_sig(word)
         return self.lookup_by_sig(sig, include_fuzzy_matches=include_fuzzy_matches)
 
-    def lookup_by_sig(self, sig, *, include_fuzzy_matches=False) -> Dict[str, bool]:
+    def lookup_by_sig(
+            self,
+            sig: int,
+            *,
+            include_fuzzy_matches:bool = False
+    ) -> Dict[str, bool]:
         """Looks up a word that has already been translated into a signature by
         a previous call to Unscrambler.compute_word_sig.  Optionally returns
         near "fuzzy" matches.