Skip to main content
https://github.com/seatgeek/thefuzz/actions/workflows/ci.yml/badge.svg

TheFuzz

Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.

Requirements

For testing

  • pycodestyle

  • hypothesis

  • pytest

Installation

Using pip via PyPI

pip install thefuzz

Using pip via GitHub

pip install git+git://github.com/seatgeek/thefuzz.git@0.19.0#egg=thefuzz

Adding to your requirements.txt file (run pip install -r requirements.txt afterwards)

git+ssh://git@github.com/seatgeek/thefuzz.git@0.19.0#egg=thefuzz

Manually via GIT

git clone git://github.com/seatgeek/thefuzz.git thefuzz
cd thefuzz
python setup.py install

Usage

>>> from thefuzz import fuzz
>>> from thefuzz import process

Simple Ratio

>>> fuzz.ratio("this is a test", "this is a test!")
    97

Partial Ratio

>>> fuzz.partial_ratio("this is a test", "this is a test!")
    100

Token Sort Ratio

>>> fuzz.ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    91
>>> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    100

Token Set Ratio

>>> fuzz.token_sort_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
    84
>>> fuzz.token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
    100

Partial Token Sort Ratio

>>> fuzz.token_sort_ratio("fuzzy was a bear", "wuzzy fuzzy was a bear")
    84
>>> fuzz.partial_token_sort_ratio("fuzzy was a bear", "wuzzy fuzzy was a bear")
    100

Process

>>> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
>>> process.extract("new york jets", choices, limit=2)
    [('New York Jets', 100), ('New York Giants', 78)]
>>> process.extractOne("cowboys", choices)
    ("Dallas Cowboys", 90)

You can also pass additional parameters to extractOne method to make it use a specific scorer. A typical use case is to match file paths:

>>> process.extractOne("System of a down - Hypnotize - Heroin", songs)
    ('/music/library/good/System of a Down/2005 - Hypnotize/01 - Attack.mp3', 86)
>>> process.extractOne("System of a down - Hypnotize - Heroin", songs, scorer=fuzz.token_sort_ratio)
    ("/music/library/good/System of a Down/2005 - Hypnotize/10 - She's Like Heroin.mp3", 61)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thefuzz-0.22.1.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thefuzz-0.22.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file thefuzz-0.22.1.tar.gz.

File metadata

  • Download URL: thefuzz-0.22.1.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for thefuzz-0.22.1.tar.gz
Algorithm Hash digest
SHA256 7138039a7ecf540da323792d8592ef9902b1d79eb78c147d4f20664de79f3680
MD5 0b7ec0d80b46c90d113df62892d78395
BLAKE2b-256 814bd3eb25831590d6d7d38c2f2e3561d3ba41d490dc89cd91d9e65e7c812508

See more details on using hashes here.

File details

Details for the file thefuzz-0.22.1-py3-none-any.whl.

File metadata

  • Download URL: thefuzz-0.22.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for thefuzz-0.22.1-py3-none-any.whl
Algorithm Hash digest
SHA256 59729b33556850b90e1093c4cf9e618af6f2e4c985df193fdf3c5b5cf02ca481
MD5 f04e6215c71dde3e79d55b3911acd351
BLAKE2b-256 824f1695e70ceb3604f19eda9908e289c687ea81c4fecef4d90a9d1d0f2f7ae9

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.22.1 This release

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page