X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=unscrambler.py;h=3abb6d817a633147382d0ac82fea37cf4450e816;hb=36fea7f15ed17150691b5b3ead75450e575229ef;hp=05f810a225ccf88b5e0232669179170fc6978b33;hpb=8811fb88b36f76360ce8fc20a67931863e59f004;p=python_utils.git diff --git a/unscrambler.py b/unscrambler.py index 05f810a..3abb6d8 100644 --- a/unscrambler.py +++ b/unscrambler.py @@ -122,11 +122,12 @@ class Unscrambler(object): # 52 bits @staticmethod def _compute_word_fingerprint( - word: str, - population: Mapping[str, int] + word: str, population: Mapping[str, int] ) -> int: fp = 0 - for pair in sorted(population.items(), key=lambda x: x[1], reverse=True): + for pair in sorted( + population.items(), key=lambda x: x[1], reverse=True + ): letter = pair[0] if letter in fprint_feature_bit: count = pair[1] @@ -140,12 +141,14 @@ class Unscrambler(object): # 32 bits @staticmethod def _compute_word_letter_sig( - letter_sigs: Mapping[str, int], - word: str, - population: Mapping[str, int], + 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): + for pair in sorted( + population.items(), key=lambda x: x[1], reverse=True + ): letter = pair[0] if letter not in letter_sigs: continue @@ -186,7 +189,9 @@ class Unscrambler(object): """ population = list_utils.population_counts(word) fprint = Unscrambler._compute_word_fingerprint(word, population) - letter_sig = Unscrambler._compute_word_letter_sig(letter_sigs, word, population) + letter_sig = Unscrambler._compute_word_letter_sig( + letter_sigs, word, population + ) assert fprint & letter_sig == 0 sig = fprint | letter_sig return sig @@ -222,10 +227,7 @@ class Unscrambler(object): print(f'0x{sig:x}+{word}', file=f) def lookup( - self, - word: str, - *, - include_fuzzy_matches: bool = False + self, word: str, *, include_fuzzy_matches: bool = False ) -> Dict[str, bool]: """Looks up a potentially scrambled word optionally including near "fuzzy" matches. @@ -236,13 +238,12 @@ class Unscrambler(object): """ sig = Unscrambler.compute_word_sig(word) - return self.lookup_by_sig(sig, include_fuzzy_matches=include_fuzzy_matches) + return self.lookup_by_sig( + sig, include_fuzzy_matches=include_fuzzy_matches + ) def lookup_by_sig( - self, - sig: int, - *, - include_fuzzy_matches:bool = False + 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