I made this as a submodule for my project on correcting password typos. I found this very cool, and might be useful in many scenarios where one has to find vairations of word due to mistyping.
Here we define typo as purely mistyping a key, and not due to ignorance. Hence, finding possible typos of a word require converting the word into sequence of key presses. This module provides those functionality to convert word into and from sequence of key presses. Also, given a word find the possible typo of that word tuned to the typos due to mistyping.
Right now it needs cython. I will remove it in future.
- Cython.
$ pip install word2keypress
# or
$ python setup.py install
Refer to the HowToRun.ipynb
file.
from word2keypress import distance, Keyboard
kb = Keyboard() # making unicode is mandatory (weird Cython)
kseq = kb.word_to_keyseq('Password')
print "\nRaw sequence:", repr(kseq)
print "\nReadable sequence:", repr(kb.print_keyseq(kseq))
print "\nkeyseq->word:", kb.keyseq_to_word(kseq)
print "\ndistance:", distance('Password1', 'PASSWORD1')
(For myself, as I keep forgetting how to deal with cython. Stupid Idea)
Don't forget to regenerate the src/word2keypress/_keyboard.c
file in
Option 1.
$ python setup.py pytest # Option 1
$ tox # Option 2
$ python -m pytest tests/ # Option 3
In any case have to regenerate the _keyboard.c
to test with the new code.