From 03639d0354b708ac8ec08ff216113ca197c46787 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Oct 2017 13:18:42 +0200 Subject: [PATCH] gnu: Add python-editdistance. * gnu/packages/textutils.scm (python-editdistance): New variable. --- gnu/packages/textutils.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index b540004fc3..674a3507d0 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -38,6 +38,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) @@ -623,3 +624,39 @@ completely with the standard @code{javax.swing.text} package. It is fast and efficient, and can be used in any application that needs to edit or view source code.") (license license:bsd-3))) + +;; We use the sources from git instead of the tarball from pypi, because the +;; latter does not include the Cython source file from which bycython.cpp is +;; generated. +(define-public python-editdistance + (let ((commit "3ea84a7dd3258c76aa3be851ef3d50e59c886846") + (revision "1")) + (package + (name "python-editdistance") + (version (string-append "0.3.1-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aflc/editdistance.git") + (commit commit))) + (sha256 + (base32 + "1l43svsv12crvzphrgi6x435z6xg8m086c64armp8wzb4l8ccm7g")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'build-cython-code + (lambda _ + (with-directory-excursion "editdistance" + (delete-file "bycython.cpp") + (zero? (system* "cython" "--cplus" "bycython.pyx")))))))) + (native-inputs + `(("python-cython" ,python-cython))) + (home-page "https://www.github.com/aflc/editdistance") + (synopsis "Fast implementation of the edit distance (Levenshtein distance)") + (description + "This library simply implements Levenshtein distance algorithm with C++ +and Cython.") + (license license:expat))))