NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2760 most downloaded on PyPI
Pure python spell checker based on work by Peter Norvig
Last release 7 months ago
07 Mar 2026
Ships fairly regularly
a new release about every 5 months
Nearly every release is documented
notes for 34 of 34 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
34 releases · first in 2018
Raise ValueError if user uses language and case_sensitive or language and local_dictionary as they are mutually exclusive options
ValueError if user uses language and case_sensitive or language and local_dictionary as they are mutually exclusive optionsOne column per quarter.
Add Persian dictionary; thanks @ashkanfeyzollahi
Persian dictionary; thanks @ashkanfeyzollahispell.known and spell.unknown functions; thanks @arvinnickUpdate dictionaries; see issue #171 and discussion 172
Update en , es , fr , and it to include country names; see issue #168
en, es, fr, and it to include country names; see issue #168Leveraged the dictionary files from levidromelist to attempt to clean up the en, es, fr, pt, 'de, and nldictionaries; Attempts to resolve issues #164,
en, es, fr, pt, 'de, and nldictionaries; Attempts to resolve issues #164, #155, #150, #140, #115, and #107; see issue #126Italian language support; see #167Remove relative imports in favor of absolute imports
Path support for filesDutch language support; see #162Added Latvian language support; see #145
Add py.typed to enable mypy support
py.typed to enable mypy supportBackwards Combatibility Change:
spell.candidates and spell.correction now return None if there are no valid corrections or candidatesscripts/build_dictionary.pyArabic language support; see #129Added class method to be able to get a listing of all supported languages
cie words; see #112Add ability to load multiple languages at once; see discussion
Deprecated spell.word_probability since the name makes it seem that it is building a true probability; use spell.word_usage_frequency instead
Updated automated scripts/build_dictionary.py script to support adding missing words
scripts/build_dictionary.py script to support adding missing wordssplit_words() to attempt to better handle punctuation; #84*NOTE:* Last planned support for Python 2.7
scripts/build_dictionary.py scriptRemove encode from the call to json.loads()
encode from the call to json.loads()Reduce words in __edit_distance_alt to improve memory performance; thanks blayzen-w
Handle memory issues when trying to correct or find candidates for extremely long words
Ensure input is encoded correctly
Handle windows encoding issues #48
Possible case sensitive dictionaries when using a custom dictionary; thanks @davido-brainlabs
Add ability to pass tokenizer function to loading text or file
Add full python 2.7 support for foreign dictionaries
Ensure all checks against the word frequency are lower case
Fix packaging of non-wheel distribution
Ignore case for language identifiers
Changed words function to split_words to differentiate with the word_frequency.words function
words function to split_words to differentiate with the word_frequency.words functionptgzip.open and open dictionary loading and exportingRemove words based on threshold
Improved (i.e. cleaned up) English dictionary
Better handle punctuation and numbers as the word to check
Ensure resource folder is included in packaging
Support multiple languages using dictionaries
Move word frequency to its own class
Initial release using code from Peter Norvig
Your coding agent can read these notes before it upgrades. Set up the MCP server →