Package: src:textdistance
Version: 4.6.3-4
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py clean 
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

        See 
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license 
for details.
        
********************************************************************************

!!
  self._finalize_license_expression()
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build' (and everything under 
it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.13' does not exist -- can't clean it
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py config 
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

        See 
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license 
for details.
        
********************************************************************************

!!
  self._finalize_license_expression()
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:311: /usr/bin/python3 setup.py build 
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

        See 
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license 
for details.
        
********************************************************************************

!!
  self._finalize_license_expression()
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
copying textdistance/benchmark.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
copying textdistance/libraries.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
copying textdistance/utils.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
copying textdistance/__init__.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/token_based.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/sequence_based.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/phonetic.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/edit_based.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/simple.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/vector_based.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/compression_based.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/types.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/base.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/algorithms/__init__.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance/algorithms
copying textdistance/py.typed -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
copying textdistance/libraries.json -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/textdistance
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; 
python3.13 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build
configfile: setup.cfg
plugins: hypothesis-6.130.5, typeguard-4.4.2
collected 430 items

tests/test_common.py ................................................... [ 11%]
........................................................................ [ 28%]
.............................................                            [ 39%]
tests/test_compression/test_arith_ncd.py ....                            [ 40%]
tests/test_compression/test_bwtrle_ncd.py ..                             [ 40%]
tests/test_compression/test_bz2_ncd.py ..                                [ 40%]
tests/test_compression/test_common.py ............................       [ 47%]
tests/test_compression/test_entropy_ncd.py ........                      [ 49%]
tests/test_compression/test_sqrt_ncd.py .......                          [ 50%]
tests/test_edit/test_damerau_levenshtein.py ............................ [ 57%]
....                                                                     [ 58%]
tests/test_edit/test_editex.py ............                              [ 61%]
tests/test_edit/test_gotoh.py .....                                      [ 62%]
tests/test_edit/test_hamming.py ......                                   [ 63%]
tests/test_edit/test_jaro.py ........                                    [ 65%]
tests/test_edit/test_jaro_winkler.py .......                             [ 67%]
tests/test_edit/test_levenshtein.py ......                               [ 68%]
tests/test_edit/test_matrix.py ..........                                [ 70%]
tests/test_edit/test_mlipns.py ...........                               [ 73%]
tests/test_edit/test_needleman_wunsch.py .....                           [ 74%]
tests/test_edit/test_smith_waterman.py .....                             [ 75%]
tests/test_edit/test_strcmp95.py ....                                    [ 76%]
tests/test_external.py .F..F.F..F.F..F.F..F.F..F.F..F                    [ 83%]
tests/test_phonetic/test_editex.py ..............................        [ 90%]
tests/test_sequence/test_lcsseq.py ...........                           [ 93%]
tests/test_sequence/test_lcsstr.py ..........                            [ 95%]
tests/test_token/test_bag.py ....                                        [ 96%]
tests/test_token/test_cosine.py ..                                       [ 96%]
tests/test_token/test_jaccard.py .....                                   [ 98%]
tests/test_token/test_monge_elkan.py ..                                  [ 98%]
tests/test_token/test_overlap.py ...                                     [ 99%]
tests/test_token/test_sorensen.py ...                                    [100%]

=================================== FAILURES ===================================
____________________________ test_compare[Hamming] _____________________________

alg = 'Hamming'

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:21: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Hamming'

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.settings(deadline=None)
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    def test_compare(left, right, alg):
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_compare(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:39: RuntimeError
__________________________ test_compare[Levenshtein] ___________________________

alg = 'Levenshtein'

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:21: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Levenshtein'

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.settings(deadline=None)
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    def test_compare(left, right, alg):
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_compare(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:39: RuntimeError
___________________________ test_qval[None-Hamming] ____________________________

alg = 'Hamming', qval = None

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Hamming', qval = None

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   qval=None,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
_________________________ test_qval[None-Levenshtein] __________________________

alg = 'Levenshtein', qval = None

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Levenshtein', qval = None

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   qval=None,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
_____________________________ test_qval[1-Hamming] _____________________________

alg = 'Hamming', qval = 1

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Hamming', qval = 1

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   qval=1,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
___________________________ test_qval[1-Levenshtein] ___________________________

alg = 'Levenshtein', qval = 1

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Levenshtein', qval = 1

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   qval=1,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
_____________________________ test_qval[2-Hamming] _____________________________

alg = 'Hamming', qval = 2

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Hamming', qval = 2

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   qval=2,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
___________________________ test_qval[2-Levenshtein] ___________________________

alg = 'Levenshtein', qval = 2

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Levenshtein', qval = 2

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   qval=2,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
_____________________________ test_qval[3-Hamming] _____________________________

alg = 'Hamming', qval = 3

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Hamming', qval = 3

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   qval=3,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
___________________________ test_qval[3-Levenshtein] ___________________________

alg = 'Levenshtein', qval = 3

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = '0', right = '0', alg = 'Levenshtein', qval = 3

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.text(min_size=1),
        right=hypothesis.strategies.text(min_size=1),
    )
    @pytest.mark.parametrize('qval', (None, 1, 2, 3))
    def test_qval(left: str, right: str, alg: str, qval: int | None) -> None:
        for lib in libraries.get_libs(alg):
    
            if lib.module_name == 'jellyfish':
                ascii = set(string.printable)
                if (set(left) | set(right)) - ascii:
                    continue
    
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_qval(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   qval=3,
E                   left='0',  # or any other generated value
E                   right='0',  # or any other generated value
E               )

tests/test_external.py:69: RuntimeError
________________________ test_list_of_numbers[Hamming] _________________________

alg = 'Hamming'

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = [], right = [], alg = 'Hamming'

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.lists(hypothesis.strategies.integers()),
        right=hypothesis.strategies.lists(hypothesis.strategies.integers()),
    )
    def test_list_of_numbers(left, right, alg):
        for lib in libraries.get_libs(alg):
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.hamming
E               Falsifying example: test_list_of_numbers(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Hamming',
E                   left=[],  # or any other generated value
E                   right=[],  # or any other generated value
E               )

tests/test_external.py:102: RuntimeError
______________________ test_list_of_numbers[Levenshtein] _______________________

alg = 'Levenshtein'

    @pytest.mark.external
>   @pytest.mark.parametrize('alg', libraries.get_algorithms())

tests/test_external.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

left = [], right = [], alg = 'Levenshtein'

    @pytest.mark.external
    @pytest.mark.parametrize('alg', libraries.get_algorithms())
    @hypothesis.given(
        left=hypothesis.strategies.lists(hypothesis.strategies.integers()),
        right=hypothesis.strategies.lists(hypothesis.strategies.integers()),
    )
    def test_list_of_numbers(left, right, alg):
        for lib in libraries.get_libs(alg):
            conditions = lib.conditions or {}
            internal_func = getattr(textdistance, alg)(external=False, 
**conditions)
            external_func = lib.get_function()
            if external_func is None:
>               raise RuntimeError('cannot import {}'.format(str(lib)))
E               RuntimeError: cannot import Levenshtein.distance
E               Falsifying example: test_list_of_numbers(
E                   # The test always failed when commented parts were varied 
together.
E                   alg='Levenshtein',
E                   left=[],  # or any other generated value
E                   right=[],  # or any other generated value
E               )

tests/test_external.py:102: RuntimeError
=========================== short test summary info ============================
FAILED tests/test_external.py::test_compare[Hamming] - RuntimeError: cannot i...
FAILED tests/test_external.py::test_compare[Levenshtein] - RuntimeError: cann...
FAILED tests/test_external.py::test_qval[None-Hamming] - RuntimeError: cannot...
FAILED tests/test_external.py::test_qval[None-Levenshtein] - RuntimeError: ca...
FAILED tests/test_external.py::test_qval[1-Hamming] - RuntimeError: cannot im...
FAILED tests/test_external.py::test_qval[1-Levenshtein] - RuntimeError: canno...
FAILED tests/test_external.py::test_qval[2-Hamming] - RuntimeError: cannot im...
FAILED tests/test_external.py::test_qval[2-Levenshtein] - RuntimeError: canno...
FAILED tests/test_external.py::test_qval[3-Hamming] - RuntimeError: cannot im...
FAILED tests/test_external.py::test_qval[3-Levenshtein] - RuntimeError: canno...
FAILED tests/test_external.py::test_list_of_numbers[Hamming] - RuntimeError: ...
FAILED tests/test_external.py::test_list_of_numbers[Levenshtein] - RuntimeErr...
======================= 12 failed, 418 passed in 25.09s ========================
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
returned exit code 13
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202504/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:textdistance, so that this is still
visible in the BTS web page for this package.

Thanks.

Reply via email to