Dear, On Sat, 17 Oct 2020 at 21:17, Malte Frank Gerdes <malte.f.ger...@gmail.com> wrote:
> i noticed that the python pypi importer generates packages definitions > which rely on the pypi-uri function declared in the python build > system. I observed that the python build system itself doesn't use this > function at all, so why is it defined there and not in the python > importer, which seems to be the only piece of software using it? Because, “pypi-uri” is used by *a lot* of Python packages – packages using ’python-build-system’. For example, gnu/packages/python-science.scm: --8<---------------cut here---------------start------------->8--- [..] #:use-module (guix build-system python)) (define-public python-scipy (package (name "python-scipy") (version "1.3.2") (source (origin (method url-fetch) (uri (pypi-uri "scipy" version)) (sha256 (base32 "192d8dsybvhv19igkrsafbdafx198nz7pibkjgrqjhlr66s3jfd0")))) (build-system python-build-system) [..] --8<---------------cut here---------------end--------------->8--- In what you are proposing, if I read correctly, the gnu/packages/python-science.scm should have to also import ’(guix import pypi)’. > Also: I tried to package pyinstrument-cext and noticed that the importer > generated function isn't able to find the source package - only > 404's. The importer uses PyPI's json API to get information about a > given package (this includes it's url - called source-url), so is the > pypi-uri function needed at all? the necessary information is available > even without it. Or are there any specific reasons why things are as > they are? I am not sure to understand. Using Guix 353bdae, I get: --8<---------------cut here---------------start------------->8--- $ guix import pypi pyinstrument-cext Starting download of /tmp/guix-file.5tmgen >From >https://files.pythonhosted.org/packages/b6/95/0a391322dd7f2f97f553373659a787b7428dfe15fc2a8e01844c8768f45e/pyinstrument_cext-0.2.2.tar.gz... …xt-0.2.2.tar.gz 5KiB 704KiB/s 00:00 [##################] 100.0% Starting download of /tmp/guix-file.cZDsRo >From >https://files.pythonhosted.org/packages/13/2e/d548d3727aa3c5b77eb79f667e7212de1acf93087ddce5274887abbe217d/pyinstrument_cext-0.2.2-cp27-cp27m-macosx_10_6_intel.whl... …-cp27m-macosx_10_6_intel.whl 7KiB 679KiB/s 00:00 [##################] 100.0% (package (name "python-pyinstrument-cext") (version "0.2.2") (source (origin (method url-fetch) (uri (pypi-uri "pyinstrument-cext" version)) (sha256 (base32 "0nycf7nhx2xzba49m8208agx5xghzxkma3iim5f43h3l3pvjb7pj")))) (build-system python-build-system) (home-page "https://github.com/joerick/pyinstrument_cext") (synopsis "A CPython extension supporting pyinstrument") (description "A CPython extension supporting pyinstrument") (license #f)) --8<---------------cut here---------------end--------------->8--- BTW, ’pypi-uri’ eases the management of all the packages coming from PyPI. If the URL of PyPI change or is mirrored, it is easy to switch or add the mirror; otherwise one would have to go package by package. Well, if I understand correctly what you mean. All the best, simon