{"id":21839,"library":"pyxdameraulevenshtein","title":"pyxDamerauLevenshtein","description":"High-performance Damerau-Levenshtein edit distance computation for Python, implemented in Cython. Currently at version 1.10.1, with wheels for CPython 3.9–3.14 on Linux, macOS, and Windows. Releases are stable and infrequent.","status":"active","version":"1.10.1","language":"python","source_language":"en","source_url":"https://github.com/lanl/pyxDamerauLevenshtein","tags":["edit-distance","damerau-levenshtein","string-similarity","cython"],"install":[{"cmd":"pip install pyxdameraulevenshtein","lang":"bash","label":"PyPI install"}],"dependencies":[],"imports":[{"note":"Direct import without function name requires qualifying the call, but most users expect the function directly.","wrong":"import pyxdameraulevenshtein","symbol":"damerau_levenshtein_distance","correct":"from pyxdameraulevenshtein import damerau_levenshtein_distance"},{"note":"Function name is unique; common typo omits 'damerau'.","wrong":"from pyxdameraulevenshtein import normalized_distance","symbol":"normalized_damerau_levenshtein_distance","correct":"from pyxdameraulevenshtein import normalized_damerau_levenshtein_distance"}],"quickstart":{"code":"from pyxdameraulevenshtein import damerau_levenshtein_distance\n\nstring1 = 'hello'\nstring2 = 'hola'\ndist = damerau_levenshtein_distance(string1, string2)\nprint(f\"DL distance: {dist}\")\n\n# Normalized distance (0.0 to 1.0)\nfrom pyxdameraulevenshtein import normalized_damerau_levenshtein_distance\nnorm_dist = normalized_damerau_levenshtein_distance(string1, string2)\nprint(f\"Normalized DL distance: {norm_dist:.4f}\")","lang":"python","description":"Compute Damerau-Levenshtein distance between two strings. Works for any hashable sequences (e.g., lists of tokens)."},"warnings":[{"fix":"Install via pip; if source build fails, install a C compiler (gcc, clang) and ensure Python development headers are available.","message":"The library uses Cython and ships prebuilt wheels for most platforms. On unsupported architectures (e.g., ARM Linux without manylinux), install from source requires a C compiler.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure both arguments are strings (or both bytes) before calling the distance functions.","message":"Input strings must be of the same type (both str or both bytes). Mixing types may raise a TypeError.","severity":"gotcha","affected_versions":"all"},{"fix":"Understand that normalized_damerau_levenshtein_distance computes distance / max(len(s1), len(s2)).","message":"The normalized distance function returns 0.0 for identical strings and 1.0 for completely different strings. It is not a symmetric normalized version of edit distance in the typical Levenshtein sense; it uses max length of the two strings as denominator.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run: pip install pyxdameraulevenshtein","cause":"Library not installed or wrong import name (common typo: pyxdameraulevenshtein vs pyxdamerau-levenshtein).","error":"ModuleNotFoundError: No module named 'pyxdameraulevenshtein'"},{"fix":"Convert arguments to strings: str(arg1), str(arg2)","cause":"Passed non-string (e.g., int, list) to distance function.","error":"TypeError: expected string or bytes-like object"},{"fix":"Upgrade: pip install --upgrade pyxdameraulevenshtein","cause":"Old library version (<1.0.0) may have different API. Current version 1.10.1 has this function.","error":"ImportError: cannot import name 'damerau_levenshtein_distance' from 'pyxdameraulevenshtein'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}