- Drop support for Python 3.6 and 3.7. Use older version for pre-built wheels. Note that it may work on these older veriosn, we are just no longer supporting and testing these Python versions
- Add support for Python 3.12
- Drop support for Python 2
- Drop support for 32 bits OSes
- Re-organize code such that sources are under src/, utilities under etc/ and tests are under tests/
- Use pytest for testing and streamline tests to use a more conventional Python approach
- Build more compatible Linux wheels using "ci-build-wheel"
- Minor rebuild to ensure Windows wheel documentation is correct ReST.
Use cibuildwheel to tests and build wheels on many OSes (with GitHub actions)
Update supported Python versions. We cannot support what we cannot test: - Drop official support for Python 2.7.
Older version still run on Python 2.7+
- Ensure that we compile with Python 3.10 and plan for 3.11
- Set minimum supported version of Python to 3.6
- Run tests in CI on 3.6, 3.7, 3.8, 3.9 and 3.10
- Add method
iter_long
, that performs the modified Aho-Corasick search procedure matching the longest words from set.
- Add method
iter_long
, that performs the modified Aho-Corasick search procedure matching the longest words from set.
- Change internal trie representation thanks to that performance
of common operation is 1.5 - 2.5 times faster. Details are
presented in #107
Warning: this change breaks compatibility of pickle and
save()
format, this won't be possible to load files created in the previous version.
- Add alternative pickling mechanism
save()
/load
, which requires less memory than the standard pickle solution (issue #102)
- Add methods
remove_word()
/pop()
(issue #79)
- Fix manifest file
Fix pickling of large automatons (issue #50); The fix wouldn't be possible without great help and patience of all people involved:
- Emil Stenström (@EmilStenstrom)
- David Woakes (@woakesd)
- @Dobatymo
- Philippe Ombredanne (@pombredanne)
The fix wouldn't also be possible without Daniel Lemire (@lemire), who gave me access to decent machines and I was able to test fixes on large data.
- Add support for tuples of ints to
iter()
(by Frankie Robertson)
- Reworked pickling code
- Fix pickling crash (issue #68)
- Fix pickling memory leak (issue #62)
- Fix documentation (by Philippe Ombredanne)
- Fix several latent bugs and problems
- Fix handling of unicode in Python 3 (by Frankie Robertson)
- Fix documentation typos (by Sylvain Zimmer)
- Add ability to skip white spaces in the input strings (by @gladtosee; issue #84)
- Fix memory leak (issue #81)
- Add link to Python implementation from Abusix (by Frederik Petersen)
- Fix unit tests (by Renat Nasyrov)
- Minor documentation fixes (by Edward Betts)
- Some internal improvements
- Fix PyPI building (by Philippe Ombredanne; issue #71)
- Fix handling of UCS2-encoded string (issue #53)
- Fix pickling error
- Several minor fixes and corrections to documentation and infrastructure (thanks to: Jan Fan, @blackelk, David Woakes and Xiaopeng Xu)
- Fix URL in documentation (by Philippe Ombredanne)
- Rewrite documentation and fix PyPI presentation (by Philippe Ombredanne)
- Rewrite documentation continued (by Philippe Ombredanne)
- Rewrite documentation, setup readthedocs.io page (by Philippe Ombredanne)
- Make the module compilable in Windows using MSVC compiler (issue #11)
- Fix
get()
method that crashed when trie was empty (issue #22) - Fix pickling problem (issue #26)
- Add
__sizeof__()
method (issue #25)
- Support for Python 2 (with help from Philippe Ombredanne; issue #12)
- Fix memory leak (by Jonathan Grs; issue #9)
- Fix range parsing (by Jonathan Grs; issue #10)
- Fix pickling on 64-bit machines (issue #20)
- Update documentation regarding wildcards
- Fix Unicode handling during automaton build (issue #8)
- Fix some 64-bit code issues (issue #5)
- Fix documentation (thanks to Pastafarianist)
- The first version available through PyPi