NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4226 most downloaded on PyPI
Python bindings for the Enchant spellchecking system
Last release 1 years ago
14 Sep 2025
Release timing varies
gaps range from 2 weeks to 2.2 years
Most releases are documented
notes for 26 of 31 stable releases
Nothing withdrawn
no release was ever pulled
21 years old
39 releases · first in 2006
Add tokenizer for the German language
Add tokenizer for the German language
Improve support for macOS M1 architecture
Add support for Python 3.11, 3.12 and 3.13
Bump minimum required Python version to 3.9
Numerous documentation updates
Start adding type annotations (still a work in progress)
For the enchant.checker package: always setup SpellChecker.
Display project urls on pypi.org
Sort all imports with isort
Numerous tests cleanups
Update FSF address in LICENSE.txt
Use enchant archive generated from GitHub Actions
Bmup enchant from 2.2.7 to 3.4.4
Publish packages from GitHub Actions
Nothing published for this version
One column per quarter.
Nothing published for this version
Add Python 3.10 support
Add Python 3.10 support
Fix Dict.__del__ sometimes raising TypeError upon exit ( #98 ). Patch by @rr-
Add trove classifiers for all supported Python versions
pyupgrade across the code baseOn Windows, set PATH instead of calling SetDllDirectory before loading the Enchant C library. This allows PyEnchant to co-exist with other libraries i
SetDllDirectory before loading theAdd enchant.get_user_config_dir()
enchant.get_user_config_dir()enchant.get_enchant_version() now returns a str, not some bytesAdd missing LICENSE.txt in source distribution
Breaking changes ++++++++++++++++
Uncouple PyEnchant version from the Enchant version. This release should be compatible with Enchant 1.6 to 2.2
Fix using PyEnchant with Enchant >= 2.0
Add support for pypy3, Python 3.7 and Python 3.8
New website, hosted on https://pyenchant.github.io/pyenchant/
Add enchant.set_prefix_dir()
Drop support for Python2
macOS: The C enchant library is no longer embedded inside the wheel - you should install the C enchant library with brew or ports.
Port test suite to pytest.
Add tbump configuration to simplify the release process
Format code with black.
Remove compatibility layers with Python2 from enchant.utils
Use flake8 to catch some errors during CI
Fix some PEP8 naming violations
Switch to GitHub Actions for CI
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Removed deprecated is_in_session method, for compatibility with enchant 2.
Removed deprecated is_in_session method, for compatibility with enchant 2.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Change the way DeprecationWarnings are issued, to point to the line line in user code rather than inside pyenchant. Thanks eriolv.
New website and documentation, generated with Hyde and Sphinx.
Fix SpellChecker.replace() when the replacement is shorter than the erroneous word; previously this would corrupt the internal state of the tokenizer. Thanks Steckelfisch.
Make Dict class pickle-safe. Among other things, this should help with strange deadlocks when used with the multiprocessing module.
Ability to import the module even when the enchant C library isn't installed, by setting PYENCHANT_IGNORE_MISSING_LIB env var.
New utility function "trim_suggestions", useful for trimming the list of suggestions to a fixed maximum length.
Change the way DeprecationWarnings are issued, to point to the line line in user code rather than inside pyenchant. Thanks eriolv.
Add GetSpellChecker() method to wxSpellCheckerDialog. Thanks bjosey.
fix unittest DeprecationWarnings on Python 3.
restore compatibility with Python 3 (including 3.2 beta1).
fix unittest DeprecationWarnings on Python 3.
statically compile libstdc++ into pre-built windows binaries.
DictWithPWL: use pwl and pel to adjust the words returned by suggest().
DictWithPWL: use pwl and pel to adjust the words returned by suggest().
Fix tokenization of utf8 bytes in a mutable character array.
get_tokenizer(): pass None as language tag to get default tokenizer.
prevent build-related files from being included in the source tarball.
Bundle pre-compiled libraries for Mac OSX 10.4 and later.
Bundle pre-compiled libraries for Mac OSX 10.4 and later.
Improved handling of unicode paths on win32.
Changed DLL loading logic for win32, to ensure that we don't accidentally load older versions of e.g. glib that may be on the DLL search path.
Added function get_enchant_version() to retrieve the version string for the underlying enchant library.
Upgraded bundled enchant to v1.6.0.
Upgraded bundled enchant to v1.6.0.
Fixed bug in printf() utility function; all input args are now converted to strings before printing.
Fixed loading of enchant DLL on win32 without pkg_resources installed.
Fixed loading of enchant DLL on win32 without pkg_resources installed.
Fixed HTMLChunker to handle unescaped < and > characters that are clearly not part of a tag.
new Broker methods get_param() and set_param() allow runtime customisation of provider data
Upgraded to enchant v1.5.0:
new Broker methods get_param() and set_param() allow runtime customisation of provider data
Added the concept of 'chunkers' to enchant.tokenize.get_tokenizer(). These serve split split the text into large chunks of checkable tokens.
implemented a simple HTMLChunker class
Moved error classes into 'enchant.errors' for easier importing
Moved testcases into separate files so they're not loaded by default
Allowed SpellChecker to use default language if none is specified
Improved compatibility with Python 3
Fixed termination conditions in English tokenization loop.
Fixed termination conditions in English tokenization loop.
Improved unicode detection in English tokenizer.
Made enchant spellcheck all of its docstrings as part of the unittest suite.
Modify utils.get_resource_filename and utils.win32_data_files for compatibility with py2exe (which was broken in the move to ctypes). Thanks to Stephe
Modify utils.get_resource_filename and utils.win32_data_files for compatibility with py2exe (which was broken in the move to ctypes). Thanks to Stephen George for the fix.
SpellChecker.add_to_personal renamed to SpellChecker.add and fixed to use the corresponding Dict method.
SpellChecker.add_to_personal renamed to SpellChecker.add and fixed to use the corresponding Dict method.
also opens possibilities for Jython, IronPython, ...
Migrated from SWIG to ctypes
now runs under PyPy!
also opens possibilities for Jython, IronPython, ...
Compatibility updates for Python 3.0, mostly around unicode strings
Dropped compatibility with Python 2.2
windows version can now be installed at a path containing unicode characters
upgrade to enchant v1.4.2
windows version can now be installed at a path containing unicode characters
treat combining unicode marks as letters during tokenization
treat combining unicode marks as letters during tokenization
cleanup of wxSpellCheckerDialog, thanks to Phil Mayes
upgrades of bundled components in Windows version
upgraded glib DLLs
latest dictionaries from OpenOffice.org
latest version of Hunspell
Re-worked the tokenization API to allow filters but still remove non-alpha-numeric characters from words by default. This introduces some minor backwa
Re-worked the tokenization API to allow filters but still remove non-alpha-numeric characters from words by default. This introduces some minor backward-incompatibilities to the API, hence the full minor version bump.
'fallback' argument to get_tokenizer() was removed, just catch the Error and re-try with whatever is appropriate for your application.
filters should be passed into get_tokenizer() as the second argument, rather than applied as separate functions.
Basic whitespace-and-punctuation tokenization separated from the language-specific parts.
Internal details of Filter classes expanded and generalized
English tokenization rules reverted to 1.1.5 version
Removed deprecated functionality:
Implemented "filters" that allow tokenization to skip common word forms such as URLs, WikiWords, email addresses etc.
Now ships with enchant-1.3.0, meaning:
PWLs can return a useful list of suggestions rather than the empty list
Hunspell replaces MySpell as the default Windows backend
Tokenization doesn't split words at non-alpha characters by default
GtkSpellCheckerDialog contributed by Fredrik Corneliusson
Removed deprecated functionality:
Dict.add_to_personal
All registry handling functionality from enchant.utils
enchant.utils.SpellChecker (use enchant.checker.SpellChecker)
Removed PyPWL, as native enchant PWLs can now suggest corrections
Fix hang in included MySpell (Windows distribution)
Fix hang in included MySpell (Windows distribution)
Workaround for some MySpell/unicode problems
Update to latest setuptools ez_setup.py
No longer need to use the registry under Windows
No longer need to use the registry under Windows
Moved to setuptools for managing distribution
Implemented unittest TestCases, works with python setup.py test
Plugins on Windows moved to "enchant" subdirectory
SpellChecker now coerces to/from unicode automatically
Use python default encoding rather than UTF-8 where appropriate
Various documentation cleanups
bug fixes:
(1230151): count of live instances done by normalized key
Accept unicode strings as broker orderings
Your coding agent can read these notes before it upgrades. Set up the MCP server →