14
0
forked from pool/python-pylev

Accepting request 703991 from home:jayvdb:coala:test-rig

- Initial spec for v1.3.0

OBS-URL: https://build.opensuse.org/request/show/703991
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylev?expand=0&rev=1
This commit is contained in:
Tomáš Chvátal
2019-05-20 07:43:27 +00:00
committed by Git OBS Bridge
commit 7b2167973d
7 changed files with 159 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

25
LICENSE Normal file
View File

@@ -0,0 +1,25 @@
Copyright (c) 2012, Daniel Lindsley
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the pylev nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL pylev BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

3
pylev-1.3.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:063910098161199b81e453025653ec53556c1be7165a9b7c50be2f4d57eae1c3
size 3193

4
python-pylev.changes Normal file
View File

@@ -0,0 +1,4 @@
-------------------------------------------------------------------
Sun May 19 01:44:08 AM UTC 2019 - John Vandenberg <jayvdb@gmail.com>
- Initial spec for v1.3.0

58
python-pylev.spec Normal file
View File

@@ -0,0 +1,58 @@
#
# spec file for package python-pylev
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pylev
Version: 1.3.0
Release: 0
License: BSD-3-Clause
Summary: A pure Python Levenshtein implementation
Url: http://github.com/toastdriven/pylev
Group: Development/Languages/Python
Source: https://files.pythonhosted.org/packages/source/p/pylev/pylev-%{version}.tar.gz
Source1: https://raw.githubusercontent.com/toastdriven/pylev/master/LICENSE
Source2: https://raw.githubusercontent.com/toastdriven/pylev/master/tests.py
BuildRequires: python-rpm-macros
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildArch: noarch
%python_subpackages
%description
A pure Python Levenshtein implementation.
%prep
%setup -q -n pylev-%{version}
cp %{SOURCE1} %{SOURCE2} .
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%python_exec setup.py test
%files %{python_files}
%license LICENSE
%doc README.rst
%{python_sitelib}/*
%changelog

45
tests.py Normal file
View File

@@ -0,0 +1,45 @@
import itertools
import unittest
import pylev
test_data = [
('classic', "kitten", "sitting", 3),
('same', "kitten", "kitten", 0),
('empty', "", "", 0),
('a', "meilenstein", "levenshtein", 4),
('b', "levenshtein", "frankenstein", 6),
('c', "confide", "deceit", 6),
('d', "CUNsperrICY", "conspiracy", 8),
]
test_functions = [
# pylev.classic_levenshtein, # disabled because it is so slow
pylev.recursive_levenshtein,
pylev.wf_levenshtein,
pylev.wfi_levenshtein
]
class Tests(unittest.TestCase):
def test_damerau_levenshtein(seld):
assert pylev.damerau_levenshtein("ba", "abc") == 2
assert pylev.damerau_levenshtein("foobar", "foobra") == 1
assert pylev.damerau_levenshtein("fee", "deed") == 2
def _mk_test_fn(fn, a, b, expected):
def _test_fn(self):
self.assertEqual(fn(a, b), expected)
self.assertEqual(fn(b, a), expected)
return _test_fn
for lev_fn, data in itertools.product(test_functions, test_data):
name, a, b, expected = data
test_fn = _mk_test_fn(lev_fn, a, b, expected)
setattr(Tests, "test_%s_%s" % (name, lev_fn.__name__), test_fn)
if __name__ == '__main__':
unittest.main()