bug#52836: "guix import pypi" fails with "Failed to extract file from wheel" and "no requires.txt file found"
Hi, On ven., 31 déc. 2021 at 12:00, zimoun wrote: > On Fri, 31 Dec 2021 at 11:15, bbb ee wrote: > >> > Is it a bug on Guix side or upstream? Because it seems that upstream >> > does not provide metadata information, at least, as usually expected. >> >> `pip install PyPortfolioOpt`, `poetry add PyPortfolioOpt` runs for me. If >> other python package installer can run, I suppose the upstream is correct. > > Hum, not necessary. Well, I do not think that 'pip' uses all the > metadata from PyPI to install. 'pip' does dirty things and yes it > just works :-) But this does not imply that PyPortfolioOpt is > correctly packaged as it is defined by PyPI standards. I do not know > 'poetry'. > > Anyway. :-) I am not finding the PEP defining the Python packaging > and the structure for a PyPI package. Because it is not clear for me > if it is a bug on Guix side or upstream. This package PyPortfolioOpt is badly packaged upstream. We cannot do better than warn about the issue: --8<---cut here---start->8--- $ guix import pypi PyPortfolioOpt following redirection to `https://pypi.org/pypi/pyportfolioopt/json'... Starting download of /tmp/guix-file.6rSGsS >From >https://files.pythonhosted.org/packages/97/c2/c7569f2773f3e942367e90dcca15a235af3d3330ac8abfcbfbe67a8ba8dd/PyPortfolioOpt-1.5.1.tar.gz... …t-1.5.1.tar.gz 56KiB 8.2MiB/s 00:00 [##] 100.0% Starting download of /tmp/guix-file.MFmUSK >From >https://files.pythonhosted.org/packages/90/98/3906835b783ba39cfc613c7b0c0fde9c758c729ff3406d45f1c2a1116961/PyPortfolioOpt-1.5.1-py3-none-any.whl... ….1-py3-none-any.whl 60KiB 45.2MiB/s 00:00 [##] 100.0% guix import: warning: Failed to extract file: PyPortfolioOpt-1.5.1.dist-info/METADATA from wheel. guix import: warning: Cannot guess requirements from source archive: no requires.txt file found. guix import: warning: project name pyportfolioopt does not appear verbatim in the PyPI URI hint: The PyPI URI is: `https://files.pythonhosted.org/packages/97/c2/c7569f2773f3e942367e90dcca15 a235af3d3330ac8abfcbfbe67a8ba8dd/PyPortfolioOpt-1.5.1.tar.gz'. You should review the pypi-uri declaration in the generated package. You may need to replace "pyportfolioopt" with a substring of the PyPI URI that identifies the package. (package (name "python-pyportfolioopt") (version "1.5.1") (source (origin (method url-fetch) (uri (pypi-uri "pyportfolioopt" version)) (sha256 (base32 "162d6jyvba0xk2blssbp52rrjqpjv011h988k150p1fg7x7nzbs9" (build-system python-build-system) (home-page "https://github.com/robertmartin8/PyPortfolioOpt;) (synopsis "Financial portfolio optimization in python") (description "Financial portfolio optimization in python") (license license:expat)) --8<---cut here---end--->8--- Therefore, I am closing. Feel free to reopen if I missed a point. Cheers, simon
bug#52836: "guix import pypi" fails with "Failed to extract file from wheel" and "no requires.txt file found"
> Is it a bug on Guix side or upstream? Because it seems that upstream > does not provide metadata information, at least, as usually expected. `pip install PyPortfolioOpt`, `poetry add PyPortfolioOpt` runs for me. If other python package installer can run, I suppose the upstream is correct. Unless Guix is not as powerful as other python package installers, and cannot work for certain type of PyPi packages. In this case, can this be considered an improvement to be made? Le mer. 29 déc. 2021 à 18:09, zimoun a écrit : > Hi, > > On Mon, 27 Dec 2021 at 22:10, bbb ee wrote: > > > ``` > > guix import: warning: Failed to extract file: > > PyPortfolioOpt-1.5.1.dist-info/METADATA from wheel. > > guix import: warning: Cannot guess requirements from source archive: no > > requires.txt file found. > > ``` > > Is it a bug on Guix side or upstream? Because it seems that upstream > does not provide metadata information, at least, as usually expected. > > Well, I have not yet inspected the PyPI package but it seems possible > that it is incorrectly packaged with the Setuptools standard. > > > > ## additional information > > This user has encountered a similar issue for "guix import pypi httpie" > > https://www.mail-archive.com/bug-guix@gnu.org/msg14277.html > > > > However "guix import pypi httpie" runs for my version of guix. > > Well, “guix import pypi httpie” works for me. > > > Cheers, > simon >
bug#52836: "guix import pypi" fails with "Failed to extract file from wheel" and "no requires.txt file found"
Hi, On Fri, 31 Dec 2021 at 11:15, bbb ee wrote: > > Is it a bug on Guix side or upstream? Because it seems that upstream > > does not provide metadata information, at least, as usually expected. > > `pip install PyPortfolioOpt`, `poetry add PyPortfolioOpt` runs for me. If > other python package installer can run, I suppose the upstream is correct. Hum, not necessary. Well, I do not think that 'pip' uses all the metadata from PyPI to install. 'pip' does dirty things and yes it just works :-) But this does not imply that PyPortfolioOpt is correctly packaged as it is defined by PyPI standards. I do not know 'poetry'. Anyway. :-) I am not finding the PEP defining the Python packaging and the structure for a PyPI package. Because it is not clear for me if it is a bug on Guix side or upstream. Cheers, simon
bug#52836: "guix import pypi" fails with "Failed to extract file from wheel" and "no requires.txt file found"
Hi, On Mon, 27 Dec 2021 at 22:10, bbb ee wrote: > ``` > guix import: warning: Failed to extract file: > PyPortfolioOpt-1.5.1.dist-info/METADATA from wheel. > guix import: warning: Cannot guess requirements from source archive: no > requires.txt file found. > ``` Is it a bug on Guix side or upstream? Because it seems that upstream does not provide metadata information, at least, as usually expected. Well, I have not yet inspected the PyPI package but it seems possible that it is incorrectly packaged with the Setuptools standard. > ## additional information > This user has encountered a similar issue for "guix import pypi httpie" > https://www.mail-archive.com/bug-guix@gnu.org/msg14277.html > > However "guix import pypi httpie" runs for my version of guix. Well, “guix import pypi httpie” works for me. Cheers, simon