Skip to content

Releases: rapidfuzz/RapidFuzz

Release 2.0.0

09 Feb 11:12
Compare
Choose a tag to compare

Added

  • added C-Api which can be used to extend RapidFuzz from different Python modules using any
    programming language which allows the usage of C-Apis (C/C++/Rust)
  • added new scorers in rapidfuzz.distance.*
    • port existing distances to this new api
    • add Indel distance along with the corresponding editops function

Changed

  • when the result of string_metric.levenshtein or string_metric.hamming is below max
    they do now return max + 1 instead of -1
  • Build system moved from setuptools to scikit-build
  • Stop including all modules in __init__.py, since they significantly slowed down import time

Removed

  • remove the rapidfuzz.levenshtein module which was deprecated in v1.0.0 and scheduled for removal in v2.0.0
  • dropped support for Python2.7 and Python3.5

Deprecated

  • deprecate support to specify processor in form of a boolean (will be removed in v3.0.0)
    • new functions will not get support for this in the first place
  • deprecate rapidfuzz.string_metric (will be removed in v3.0.0). Similar scorers are available
    in rapidfuzz.distance.*

Fixed

  • process.cdist did raise an exception when used with a pure python scorer

Performance

  • improve performance and memory usage of rapidfuzz.string_metric.levenshtein_editops
    • memory usage is reduced by 33%
    • performance is improved by around 10%-20%
  • significantly improve performance of rapidfuzz.string_metric.levenshtein for max <= 31
    using a banded implementation

Release 1.9.1

13 Dec 22:29
Compare
Choose a tag to compare

Fixed

Release 1.9.0

11 Dec 19:27
Compare
Choose a tag to compare

Fixed

  • Fix some issues in the type annotations (see #163)

Performance

  • improve performance and memory usage of rapidfuzz.string_metric.levenshtein_editops
    • memory usage is reduced by 10x
    • performance is improved from O(N * M) to O([N / 64] * M)

Release 1.8.3

19 Nov 09:29
Compare
Choose a tag to compare

Added

  • Added missing wheels for Python3.6 on MacOs and Windows (see #159)

Release 1.8.2

27 Oct 12:08
Compare
Choose a tag to compare

Added

  • Add wheels for Python 3.10 on MacOs

Release 1.8.1

21 Oct 17:46
Compare
Choose a tag to compare

Fixed

  • Fix incorrect editops results (See #148)

Release 1.8.0

20 Oct 14:39
Compare
Choose a tag to compare

Changed

  • Add Wheels for Python3.10 on all platforms except MacOs (see #141)
  • Improve performance of string_metric.jaro_similarity and string_metric.jaro_winkler_similarity for strings with a length <= 64

Release 1.7.1

02 Oct 09:38
Compare
Choose a tag to compare

Fixed

  • fixed incorrect results of fuzz.partial_ratio for long needles (see #138)

Release 1.7.0

27 Sep 15:17
1ec62d5
Compare
Choose a tag to compare

Changed

  • Added typing for process.cdist
  • Added multithreading support to cdist using the argument process.cdist
  • Add dtype argument to process.cdist to set the dtype of the result numpy array (see #132)
  • Use a better hash collision strategy in the internal hashmap, which improves the worst case performance

Release 1.6.2

15 Sep 07:38
Compare
Choose a tag to compare

Changed

  • improved performance of fuzz.ratio
  • only import process.cdist when numpy is available