Changelog ========= 3.3.0 (unreleased) ------------------ * Add tokenizer for the German language * Improve support for macOS M1 architecture * Add support for Python 3.11 * Remove support for Python 3.6 * 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 * Windows wheels: * Use ``enchant`` archive generated from GitHub Actions * Bmup ``enchant`` from 2.2.7 to 3.4.4 3.2.2 (2021-10-05) ------------------ * Add support for Python 3.10 3.2.1 (2021-06-24) -------------------- * Fix ``Dict.__del__`` sometimes raising `TypeError` upon exit (#98). Patch by @rr- * Default development branch is now called ``main`` * Bump ``black`` to 21.6b0 3.2.0 (2020-12-08) ------------------- * Add support for Python 3.9 * Add trove classifiers for all supported Python versions * Run ``pyupgrade`` across the code base * Update documentation about MacPorts 3.1.1 (2020-05-31) ------------------ * On Windows, set PATH instead of calling ``SetDllDirectory`` before loading the Enchant C library. This allows PyEnchant to co-exist with other libraries in the same program. Fix #207. 3.1.0 (2020-05-20) ------------------- * Add ``enchant.get_user_config_dir()`` * Fix: ``enchant.get_enchant_version()`` now returns a ``str``, not some ``bytes`` 3.0.1 (2020-03-01) ------------------ * Add missing LICENSE.txt in source distribution 3.0.0 (2020-03-01) ------------------ Highlights ++++++++++ * 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()` Breaking changes ++++++++++++++++ * 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``. Clean ups +++++++++ * 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 2.0.0 (2017-12-10) ------------------ * Removed deprecated `is_in_session` method, for compatibility with enchant 2. 1.6.6 (2014-06-16) ------------------ * 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. 1.6.5 (2010-12-14) ------------------ * restore compatibility with Python 3 (including 3.2 beta1). * fix unittest DeprecationWarnings on Python 3. * statically compile libstdc++ into pre-built windows binaries. 1.6.4 (2010-12-13) ------------------ * 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. 1.6.3 (2010-08-17) ------------------ * 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. 1.6.2 (2010-05-29) ------------------ * Upgraded bundled enchant to v1.6.0. * Fixed bug in printf() utility function; all input args are now converted to strings before printing. 1.6.1 (2010-03-06) ------------------ * 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. 1.6.0 (2010-02-23) ------------------ * 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 1.5.3 (2009-05-02) ------------------ * 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. 1.5.2 (2009-04-27) ------------------ * 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. 1.5.1 (2009-01-08) ------------------ * SpellChecker.add_to_personal renamed to SpellChecker.add and fixed to use the corresponding Dict method. 1.5.0 (2008-11-25) ------------------ * 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 1.4.2 (2008-06-18) ------------------ * upgrade to enchant v1.4.2 * windows version can now be installed at a path containing unicode characters 1.4.0 (2008-04-18) ------------------ * upgrade to enchant v1.4.0, with new functionality and APIs: * All dictionary providers now use a shared default personal word file (largely obsoleting the DictWithPWL class) * Ability to exclude words using Dict.remove, remove_from_session * Dict.add_to_personal renamed to Dict.add * Dict.is_added/Dict.is_removed for checking membership of word lists * unicode PWL filenames now handled correctly on Windows * upgrade bundled glib DLLs in Windows version 1.3.1 (2007-12-19) ------------------ * 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 1.3.0 (2006-12-29) ------------------ * 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 1.2.0 (2006-11-05) ------------------ * 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 1.1.5 (2006-01-19) ------------------ * Fix hang in included MySpell (Windows distribution) * Workaround for some MySpell/unicode problems * Update to latest setuptools ez_setup.py 1.1.4 (2006-01-09) ------------------ * 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 1.1.3 (2005-06-15) ------------------ * support for Python 2.2 * use 'locale' module to look up default language if none specified * more and better regression tests * mark deprecated interfaces with warnings * removed parameter to Dict constructor, with lots of reshuffling behind the scenes * add DictNotFoundError as a subclass of Error * Remove de_AT from languages in the Windows version, it was causing errors * bug fixes: * memory leak in DictWithPWL._free() * incorrect cache handling for PWLs