Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
* damerau-levenshtein (DEFAULT)
* hamming
* jaro
* jaro-winkler
Return values:
"levenshtein", "damerau-levenshtein" and "hamming" return integers
"jaro" and "jaro-winkler" return floats in the range of 0.0 (completely
different) to 1.0 (identical strings).
'''
algos = {
"levenshtein":levenshtein_distance,
"damerau-levenshtein":damerau_levenshtein_distance,
"hamming":hamming_distance,
"jaro":jaro_similarity,
"jaro-winkler":jaro_winkler_similarity
}
if not method in list(algos.keys()):
raise ValueError("Unsupported algorithm type: %s" % method)
if str1 is None or str2 is None or not isinstance(str1, str) or not isinstance(str2, str):
raise TypeError("Arguments must be strings.")
distance_function = algos[method]
# All the jellyfish distance functions expect unicode, which is the default
# for Python3. If we're running in Python2, we need to convert them.
python_version = sys.version_info
if python_version.major == 2:
str1 = unicode(str1)
str2 = unicode(str2)