Initial python3 changes

Mostly just updating libraries, removing string encoding/decoding,
fixing some edge cases. No new functionality was added in this
commit.
This commit is contained in:
rembo10
2022-01-14 10:38:03 +05:30
parent 9a7006ad14
commit ab4dd18be4
813 changed files with 146338 additions and 65753 deletions
+16 -16
View File
@@ -107,7 +107,7 @@ if platform.python_implementation() == 'CPython':
def test_match_rating_comparison_segfault():
import hashlib
from jellyfish import cjellyfish as jf
sha1s = [u'{}'.format(hashlib.sha1(str(v).encode('ascii')).hexdigest())
sha1s = ['{}'.format(hashlib.sha1(str(v).encode('ascii')).hexdigest())
for v in range(100)]
# this segfaulted on 0.1.2
assert [[jf.match_rating_comparison(h1, h2) for h1 in sha1s] for h2 in sha1s]
@@ -117,8 +117,8 @@ if platform.python_implementation() == 'CPython':
# unfortunate difference in behavior between Py & C versions
from jellyfish.cjellyfish import damerau_levenshtein_distance as c_dl
from jellyfish._jellyfish import damerau_levenshtein_distance as py_dl
s1 = u'mylifeoutdoors'
s2 = u'нахлыст'
s1 = 'mylifeoutdoors'
s2 = 'нахлыст'
with pytest.raises(ValueError):
c_dl(s1, s2)
with pytest.raises(ValueError):
@@ -129,85 +129,85 @@ if platform.python_implementation() == 'CPython':
def test_jaro_winkler_long_tolerance(jf):
no_lt = jf.jaro_winkler(u'two long strings', u'two long stringz', long_tolerance=False)
with_lt = jf.jaro_winkler(u'two long strings', u'two long stringz', long_tolerance=True)
no_lt = jf.jaro_winkler('two long strings', 'two long stringz', long_tolerance=False)
with_lt = jf.jaro_winkler('two long strings', 'two long stringz', long_tolerance=True)
# make sure long_tolerance does something
assertAlmostEqual(no_lt, 0.975)
assertAlmostEqual(with_lt, 0.984)
def test_damerau_levenshtein_distance_type(jf):
jf.damerau_levenshtein_distance(u'abc', u'abc')
jf.damerau_levenshtein_distance('abc', 'abc')
with pytest.raises(TypeError) as exc:
jf.damerau_levenshtein_distance(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_levenshtein_distance_type(jf):
assert jf.levenshtein_distance(u'abc', u'abc') == 0
assert jf.levenshtein_distance('abc', 'abc') == 0
with pytest.raises(TypeError) as exc:
jf.levenshtein_distance(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_jaro_distance_type(jf):
assert jf.jaro_distance(u'abc', u'abc') == 1
assert jf.jaro_distance('abc', 'abc') == 1
with pytest.raises(TypeError) as exc:
jf.jaro_distance(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_jaro_winkler_type(jf):
assert jf.jaro_winkler(u'abc', u'abc') == 1
assert jf.jaro_winkler('abc', 'abc') == 1
with pytest.raises(TypeError) as exc:
jf.jaro_winkler(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_mra_comparison_type(jf):
assert jf.match_rating_comparison(u'abc', u'abc') is True
assert jf.match_rating_comparison('abc', 'abc') is True
with pytest.raises(TypeError) as exc:
jf.match_rating_comparison(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_hamming_type(jf):
assert jf.hamming_distance(u'abc', u'abc') == 0
assert jf.hamming_distance('abc', 'abc') == 0
with pytest.raises(TypeError) as exc:
jf.hamming_distance(b'abc', b'abc')
assert 'expected' in str(exc.value)
def test_soundex_type(jf):
assert jf.soundex(u'ABC') == 'A120'
assert jf.soundex('ABC') == 'A120'
with pytest.raises(TypeError) as exc:
jf.soundex(b'ABC')
assert 'expected' in str(exc.value)
def test_metaphone_type(jf):
assert jf.metaphone(u'abc') == 'ABK'
assert jf.metaphone('abc') == 'ABK'
with pytest.raises(TypeError) as exc:
jf.metaphone(b'abc')
assert 'expected' in str(exc.value)
def test_nysiis_type(jf):
assert jf.nysiis(u'abc') == 'ABC'
assert jf.nysiis('abc') == 'ABC'
with pytest.raises(TypeError) as exc:
jf.nysiis(b'abc')
assert 'expected' in str(exc.value)
def test_mr_codex_type(jf):
assert jf.match_rating_codex(u'abc') == 'ABC'
assert jf.match_rating_codex('abc') == 'ABC'
with pytest.raises(TypeError) as exc:
jf.match_rating_codex(b'abc')
assert 'expected' in str(exc.value)
def test_porter_type(jf):
assert jf.porter_stem(u'abc') == 'abc'
assert jf.porter_stem('abc') == 'abc'
with pytest.raises(TypeError) as exc:
jf.porter_stem(b'abc')
assert 'expected' in str(exc.value)