# Not packaged in Fedora:
# python-distance
%bcond distance 0
%global forgeurl https://github.com/orsinium/textdistance
%global tag %{version}
Name: python-textdistance
Version: 4.6.1
Release: %autorelease
Summary: Compute distance between the two texts
%forgemeta
# SPDX
License: MIT
URL: %{forgeurl}
# The PyPI sdist lacks tests, so we must use the GitHub archive.
Source: %{forgesource}
BuildArch: noarch
BuildRequires: python3-devel
# For running tests in parallel:
BuildRequires: %{py3_dist pytest-xdist}
%global _description %{expand:
TextDistance - python library for comparing distance between two or more
sequences by many algorithms.
Features:
• 30+ algorithms
• Pure python implementation
• Simple usage
• More than two sequences comparing
• Some algorithms have more than one implementation in one class.
• Optional numpy usage for maximum speed.}
%description %{_description}
%package -n python3-textdistance
Summary: %{summary}
%description -n python3-textdistance %{_description}
# Both “common” and “extra” are equivalent to ”extras”, and are provided for
# backward compatibility and to handle typos, respectively.
%pyproject_extras_subpkg -n python3-textdistance extras common extra
%pyproject_extras_subpkg -n python3-textdistance DamerauLevenshtein
%if %{with distance}
%pyproject_extras_subpkg -n python3-textdistance Hamming
%endif
%pyproject_extras_subpkg -n python3-textdistance Jaro
%pyproject_extras_subpkg -n python3-textdistance JaroWinkler
%pyproject_extras_subpkg -n python3-textdistance Levenshtein
# We don’t choose to provide a metapackage for the “benchmark”/“benchmarks”
# extra; besides missing dependencies, we think that it is akin to the “test”
# and “lint” extras in not being intended for library *users*.
%prep
%forgeautosetup
# This really doesn’t belong in the test extras!
sed -r -i 's/^([[:blank:]]*)(.*\b(isort)\b)/\1# \2/' setup.py
%generate_buildrequires
%pyproject_buildrequires -x test,Jaro,JaroWinkler,Levenshtein
%{pyproject_buildrequires \
-x extras -x common -x extra \
-x test \
-x DamerauLevenshtein \
%if %{with distance}
-x Hamming \
%endif
-x Jaro \
-x JaroWinkler \
-x Levenshtein}
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files -l textdistance
%check
%if %{without distance}
k="${k-}${k+ and }not test_compare[Hamming]"
k="${k-}${k+ and }not test_compare[Levenshtein]"
k="${k-}${k+ and }not test_list_of_numbers[Hamming]"
k="${k-}${k+ and }not test_list_of_numbers[Levenshtein]"
k="${k-}${k+ and }not test_qval[1-Hamming]"
k="${k-}${k+ and }not test_qval[1-Levenshtein]"
k="${k-}${k+ and }not test_qval[2-Hamming]"
k="${k-}${k+ and }not test_qval[2-Levenshtein]"
k="${k-}${k+ and }not test_qval[3-Hamming]"
k="${k-}${k+ and }not test_qval[3-Levenshtein]"
k="${k-}${k+ and }not test_qval[None-Hamming]"
k="${k-}${k+ and }not test_qval[None-Levenshtein]"
%endif
%if %{without pdl}
k="${k-}${k+ and }not test_compare[DamerauLevenshtein]"
k="${k-}${k+ and }not test_list_of_numbers[DamerauLevenshtein]"
k="${k-}${k+ and }not test_qval[1-DamerauLevenshtein]"
k="${k-}${k+ and }not test_qval[2-DamerauLevenshtein]"
k="${k-}${k+ and }not test_qval[3-DamerauLevenshtein]"
k="${k-}${k+ and }not test_qval[None-DamerauLevenshtein]"
%endif
%pytest -v -k "${k-}" -n auto
%files -n python3-textdistance -f %{pyproject_files}
%doc README.md
%changelog
%autochangelog