From 8811fb88b36f76360ce8fc20a67931863e59f004 Mon Sep 17 00:00:00 2001 From: Scott Date: Wed, 26 Jan 2022 10:31:53 -0800 Subject: [PATCH] Add type hints and cleanup. --- unscrambler.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/unscrambler.py b/unscrambler.py index 6cebacf..05f810a 100644 --- a/unscrambler.py +++ b/unscrambler.py @@ -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. -- 2.46.0