Testing auto formatting
[python_utils.git] / unscrambler.py
index 6cebacf79b7555212ae8ada2042177fa9ace3b10..d3686d67ed763d9b240b58ee9d43b5151ed31ea8 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,7 @@ 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 +136,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 +218,9 @@ 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 +232,9 @@ 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.