projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add type hints and cleanup.
[python_utils.git]
/
unscrambler.py
diff --git
a/unscrambler.py
b/unscrambler.py
index 6cebacf79b7555212ae8ada2042177fa9ace3b10..05f810a225ccf88b5e0232669179170fc6978b33 100644
(file)
--- a/
unscrambler.py
+++ b/
unscrambler.py
@@
-1,7
+1,7
@@
#!/usr/bin/env python3
import logging
#!/usr/bin/env python3
import logging
-from typing import Dict
+from typing import Dict
, Mapping
import config
import decorator_utils
import config
import decorator_utils
@@
-121,7
+121,10
@@
class Unscrambler(object):
# 52 bits
@staticmethod
# 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]
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
# 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]
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)
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.
"""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)
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.
"""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.