Commit Graph

73 Commits

Author SHA1 Message Date
Max Bachmann de0f6d8af3 add fallback implementation back to wheel 2022-06-23 12:54:43 +02:00
Max Bachmann 1c583e8118 add tests to sdist 2022-06-09 13:37:27 +02:00
Max Bachmann 5074585b9e
relax dependency version requirements (#214) 2022-04-20 18:38:53 +02:00
Max Bachmann bbbe40484c build PyPy3.9 wheels for Linux 2022-04-17 20:41:16 +02:00
Max Bachmann 83d0a77f2a
allow usage of system installed libs (#213)
system installed versions of `rapidfuzz-cpp`, `jarowinkler-cpp` and `taskflow` are now used, if they are available in a compatible version
2022-04-17 20:21:34 +02:00
Max Bachmann 0c2f360b3c add missing type hints 2022-03-06 19:13:27 +01:00
Max Bachmann 1132612455 fix population of sys.modules 2022-03-06 13:24:01 +01:00
Max Bachmann 790467e7a1 backtrace segfaults in CI 2022-02-19 16:46:15 +01:00
Max Bachmann 97d6638e98 Release v2.0.2 2022-02-12 20:28:31 +01:00
Max Bachmann cd8af8cad2
allow generating cython files (#194) 2022-02-12 18:58:10 +01:00
Max Bachmann 567141402d
fix type hints (#193) 2022-02-11 20:50:52 +01:00
Max Bachmann 8639df9a68 Do not install ninja on Windows 2022-02-06 08:46:50 +01:00
Max Bachmann f1017ab114 Activate MSVC 2022-02-05 23:30:47 +01:00
Max Bachmann 616329b5a5 Use scikit-build v0.13.0 2022-02-02 23:43:07 +01:00
Max Bachmann 5fc5ca7857 update documentation theme 2022-01-25 12:29:44 +01:00
Max Bachmann 8121e03a43 fix incorrect docstring of levenshtein_editops 2022-01-03 00:58:51 +01:00
Max Bachmann 29cb84fe38
avoid generating broken docs 2022-01-02 16:32:31 +01:00
Max Bachmann 239911bac9 cythonize while installing 2021-12-30 19:46:02 +01:00
Max Bachmann 7c4ad9f092 disable PyPy build 2021-12-30 17:20:56 +01:00
Max Bachmann 0674083701 cythonize while packaging 2021-12-24 12:06:47 +01:00
Max Bachmann 0210cdf2f7 drop support for Python2.7 and Python3.5 2021-12-19 15:47:05 +01:00
Max Bachmann df568cafba Add wheels for Python3.6 2021-11-19 09:15:20 +01:00
Max Bachmann 9b4c6d20e4
Add wheels for MacOs / Python3.10 2021-10-27 11:41:25 +02:00
Max Bachmann 6e0cda4081
only build when numpy wheels are available 2021-10-24 13:55:35 +02:00
Max Bachmann 1d35d4d5b2
fix releasebuild 2021-10-20 12:56:05 +02:00
Max Bachmann 1deba44d3b skip Python3.10 on MacOs for now 2021-10-20 12:43:10 +02:00
Max Bachmann f864527845
Add Python3.10 wheels (#146) 2021-10-17 18:51:58 +02:00
Max Bachmann 1ec62d58df
Create FUNDING.yml 2021-09-26 22:05:18 +02:00
Max Bachmann 6c5584a6c0 fix incorrect loop unrolling 2021-09-24 04:53:54 +02:00
Max Bachmann d0ec89e9f9
cleanup cdist implementation 2021-09-23 22:41:10 +02:00
Max Bachmann a9e7bd703f
add back legacy python support (#122) 2021-09-11 12:25:31 +02:00
Max Bachmann 802c2f36c8
numpy does not support Python3.10 yet 2021-09-10 15:13:52 +02:00
Max Bachmann 97d956ae00 fix some compiler warnings 2021-09-10 15:12:57 +02:00
Max Bachmann 56f062b063 add cdist implementation 2021-09-10 13:37:40 +02:00
Henry Schreiner 1f585f26a8
chore: cibuildwheel is now part of the pypa 2021-06-22 23:02:31 -04:00
Max Bachmann 30ec2f92ae
add more supported types (#101) 2021-05-23 22:09:03 +02:00
Max Bachmann 3854be7ca4 add some more missing wheels 2021-03-10 11:55:07 +01:00
odidev f5842f3935 Add linux aarch64 wheel support 2021-03-10 07:00:22 +00:00
Max Bachmann 334a532721 disable PyPy tests in the meantime 2021-03-09 00:24:05 +01:00
Max Bachmann bfd968b606 drop Python2.7 support 2021-03-08 21:11:04 +01:00
Max Bachmann 53b8e3bd61 update build mechanism 2021-03-07 17:45:24 +01:00
Max Bachmann c6eebb70a5 fix incorrect ref counting 2021-03-03 16:08:42 +01:00
Max Bachmann 5383d286b2
Release v1.1.0 (#75)
## Changed
- string_metric.normalized_levenshtein supports now all weights
- when different weights are used for Insertion and Deletion the strings can not be swapped inside the Levenshtein implementation anymore. So different weights for Insertion and Deletion are now supported.
- replace C++ implementation with a Cython implementation. This has the following advantages:
  - The implementation is less error prone, since a lot of the complex things are done by Cython
  - slighly faster than the current implementation (up to 10% for some parts)
  - about 33% smaller binary size
  - reduced compile time
- Added **kwargs argument to process.extract/extractOne/extract_iter that is passed to the scorer
- Add max argument to hamming distance
- Add support for whole Unicode range to utils.default_process

## Performance
- replaced Wagner Fischer usage in the normal Levenshtein distance with a bitparallel implementation
2021-02-21 19:42:36 +01:00
Max Bachmann 0e6466d835 rename master branch to main 2021-02-14 15:00:57 +01:00
Max Bachmann 375c13e436 Release v1.0.0 (#68)
- all normalized string_metrics can now be used as scorer for process.extract/extractOne
- Implementation of the C++ Wrapper completely refactored to make it easier to add more scorers, processors and string matching algorithms in the future.
- increased test coverage, that already helped to fix some bugs and help to prevent regressions in the future
- improved docstrings of functions

- Added bitparallel implementation of the Levenshtein distance for the weights (1,1,1) and (1,1,2).
- Added specialized implementation of the Levenshtein distance for cases with a small maximum edit distance, that is even faster, than the bitparallel implementation.
- Improved performance of `fuzz.partial_ratio`
-> Since `fuzz.ratio` and `fuzz.partial_ratio` are used in most scorers, this improves the overall performance.
- Improved performance of `process.extract` and `process.extractOne`

- the `rapidfuzz.levenshtein` module is now deprecated and will be removed in v2.0.0
  These functions are now placed in `rapidfuzz.string_metric`. `distance`, `normalized_distance`, `weighted_distance` and `weighted_normalized_distance` are combined into `levenshtein` and `normalized_levenshtein`.

- added normalized version of the hamming distance in `string_metric.normalized_hamming`
- process.extract_iter as a generator, that yields the similarity of all elements, that have a similarity >= score_cutoff

- multiple bugs in extractOne when used with a scorer, thats not from RapidFuzz
- fixed bug in `token_ratio`
- fixed bug in result normalisation causing zero division
2021-02-12 16:48:10 +01:00
Max Bachmann 325f66c274
reproduce #65 2020-11-30 13:11:05 +01:00
Max Bachmann 67b02ff967 add C++11 support 2020-11-21 18:25:47 +01:00
Max Bachmann 426fbb24e9
implement process.extractOne in C++ (#53)
* start to simplify complexion

* start implementation

* add extractOne to C++

* fix a couple of bugs in the implementation

* start adressing performance issues
2020-11-15 20:18:46 +01:00
Max Bachmann 9b64ad2fee
add wheels for Python2.7 on Windows (#47) 2020-10-22 05:54:39 +02:00
Max Bachmann 07739e988d use new version of cibuildwheel
The currently used version of cibuildwheel does not work with pypy2.7 on MacOS https://github.com/joerick/cibuildwheel/issues/446
2020-10-09 09:39:24 +02:00