editdistpy

0.2.0 · active · verified Mon Apr 13

editdistpy (version 0.2.0) provides fast implementations of the Levenshtein and Damerau Optimal String Alignment (OSA) edit distance algorithms. Written in Cython/C++, it offers significant speed improvements for string comparison tasks. The library is actively maintained, with releases made periodically, the latest major version (0.2.0) released in February 2026.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to calculate both Levenshtein and Damerau Optimal String Alignment (OSA) distances using `editdistpy`. It also highlights the use of `max_distance` for performance optimization, which returns -1 if the actual distance exceeds the specified maximum.

import sys
from editdistpy import levenshtein, damerau_osa

string_1 = "flintstone"
string_2 = "hanson"

# Levenshtein distance
max_dist_lev = 2
lev_dist_bounded = levenshtein.distance(string_1, string_2, max_dist_lev)
print(f"Levenshtein (max_distance={max_dist_lev}): {lev_dist_bounded}") # Expected: -1

lev_dist_full = levenshtein.distance(string_1, string_2, sys.maxsize)
print(f"Levenshtein (full): {lev_dist_full}") # Expected: 6

# Damerau Optimal String Alignment (OSA) distance
max_dist_osa = 2
osa_dist_bounded = damerau_osa.distance(string_1, string_2, max_dist_osa)
print(f"Damerau OSA (max_distance={max_dist_osa}): {osa_dist_bounded}") # Expected: -1

osa_dist_full = damerau_osa.distance(string_1, string_2, sys.maxsize)
print(f"Damerau OSA (full): {osa_dist_full}") # Expected: 6

view raw JSON →