"guix import pypi" fails with "Failed to extract file from wheel" and "no requires.txt file found"

  • Done
  • quality assurance status badge
Details
2 participants
  • bbb ee
  • zimoun
Owner
unassigned
Submitted by
bbb ee
Severity
normal

Debbugs page

bbb ee wrote 3 years ago
(address . bug-guix@gnu.org)
CALNLCmV1=yLA19wLy-WRahoEkvpMAk9ii9aLMyiNMWR7-jARbw@mail.gmail.com
Hello,
I have encounter a issue with "guix import pypi" :
```
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.
```
## reproduce the bug

```
(base) guix import pypi PyPortfolioOpt

Starting download of /tmp/guix-file.mwZdLg
From
..
…t-1.5.1.tar.gz 56KiB 2.7MiB/s 00:00 [##################]
100.0%

Starting download of /tmp/guix-file.mHBgak
From
..
….1-py3-none-any.whl 60KiB 2.1MiB/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.
(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)
(synopsis "Financial portfolio optimization in python")
(description "Financial portfolio optimization in python")
(license license:expat))
(base) guix describe
Generation 220 Dec 27 2021 12:01:04 (current)
guix 9bbbac6
branch: master
commit: 9bbbac6783bcdace17d967e85c8ae8d14cbf1ef9
```
## additional information
This user has encountered a similar issue for "guix import pypi httpie"

However "guix import pypi httpie" runs for my version of guix.
Attachment: file
zimoun wrote 3 years ago
(name . bbb ee)(address . blasforr@gmail.com)(address . 52836@debbugs.gnu.org)
86y243ibr4.fsf@gmail.com
Hi,

On Mon, 27 Dec 2021 at 22:10, bbb ee <blasforr@gmail.com> wrote:

Toggle quote (7 lines)
> ```
> 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.


Toggle quote (6 lines)
> ## 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
zimoun wrote 3 years ago
(name . bbb ee)(address . blasforr@gmail.com)(address . 52836@debbugs.gnu.org)
CAJ3okZ3XoS1w5i7D2Q1JLT99UcJLW6uG_aH1bjmmUd5SZFrz4A@mail.gmail.com
Hi,

On Fri, 31 Dec 2021 at 11:15, bbb ee <blasforr@gmail.com> wrote:

Toggle quote (5 lines)
> > 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
bbb ee wrote 3 years ago
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 52836@debbugs.gnu.org)
CALNLCmX0mYD8Ts6OaM8MKMEvu8h+hBW1u3Y8OS=R55pk5Hc-FA@mail.gmail.com
Toggle quote (3 lines)
> 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 <zimon.toutoune@gmail.com> a écrit :

Toggle quote (30 lines)
> Hi,
>
> On Mon, 27 Dec 2021 at 22:10, bbb ee <blasforr@gmail.com> 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
>
Attachment: file
zimoun wrote 3 years ago
(name . bbb ee)(address . blasforr@gmail.com)(address . 52836-done@debbugs.gnu.org)
87ee3c4up7.fsf@gmail.com
Hi,

On ven., 31 déc. 2021 at 12:00, zimoun <zimon.toutoune@gmail.com> wrote:
Toggle quote (17 lines)
> On Fri, 31 Dec 2021 at 11:15, bbb ee <blasforr@gmail.com> 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:

Toggle snippet (37 lines)
$ 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))


Therefore, I am closing. Feel free to reopen if I missed a point.


Cheers,
simon
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 52836@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 52836
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help