aboutsummaryrefslogtreecommitdiff
path: root/guix/import
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-07-26 17:49:34 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-26 17:49:34 +0200
commit8173ceee1f31ab562118ff5171254a4b73b71400 (patch)
treeeba237bd3f70991c87996dcc24ed998f5d333b58 /guix/import
parentdebc6360e111e8efc8a938b2aef28e5b3616ada8 (diff)
downloadgnu-guix-8173ceee1f31ab562118ff5171254a4b73b71400.tar
gnu-guix-8173ceee1f31ab562118ff5171254a4b73b71400.tar.gz
import: pypi: Correctly handle new-style URLs.
Fixes <http://bugs.gnu.org/23997>. * guix/import/pypi.scm (guix-package->pypi-name): Rewrite using 'basename' and 'hyphen-package-name->name+version'. * tests/pypi.scm ("guix-package->pypi-name, old URL style") ("guix-package->pypi-name, new URL style"): New tests.
Diffstat (limited to 'guix/import')
-rw-r--r--guix/import/pypi.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index efa69081ef..343445aa22 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -33,6 +33,9 @@
#:use-module (web uri)
#:use-module (guix ui)
#:use-module (guix utils)
+ #:use-module ((guix build utils)
+ #:select ((package-name->name+version
+ . hyphen-package-name->name+version)))
#:use-module (guix import utils)
#:use-module ((guix download) #:prefix download:)
#:use-module (guix import json)
@@ -41,7 +44,8 @@
#:use-module (guix licenses)
#:use-module (guix build-system python)
#:use-module (gnu packages python)
- #:export (pypi->guix-package
+ #:export (guix-package->pypi-name
+ pypi->guix-package
%pypi-updater))
(define (pypi-fetch name)
@@ -92,11 +96,8 @@ package."
"Given a Python PACKAGE built from pypi.python.org, return the name of the
package on PyPI."
(let ((source-url (and=> (package-source package) origin-uri)))
- ;; The URL has the form:
- ;; 'https://pypi.python.org/packages/source/' +
- ;; first letter of the package name +
- ;; '/' + package name + '/' + ...
- (substring source-url 42 (string-rindex source-url #\/))))
+ (hyphen-package-name->name+version
+ (basename (file-sans-extension source-url)))))
(define (wheel-url->extracted-directory wheel-url)
(match (string-split (basename wheel-url) #\-)