diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-07-26 17:49:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-07-26 17:49:34 +0200 |
commit | 8173ceee1f31ab562118ff5171254a4b73b71400 (patch) | |
tree | eba237bd3f70991c87996dcc24ed998f5d333b58 /guix/import | |
parent | debc6360e111e8efc8a938b2aef28e5b3616ada8 (diff) | |
download | gnu-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.scm | 13 |
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) #\-) |