Closed slovdahl closed 3 years ago
Ok, this happens because that setup.py has runtime conditionals, but generates a wheel which claims to work for all Python 3 versions i.e. aioxmpp-0.11.0-py3-none-any.whl
.
The setup.py is executed by piwheels in order to build the wheel, and that conditional is checked at runtime only. The conditional does not make its way into the wheel, as setup.py is not part of the wheel, only the result of running it is. If the outcome of setup.py is that the dependencies include something, the wheel doesn't know what conditions were met in order to create that set of dependencies. It's supposed to be declarative, not runtime-dependent, which is why the Python ecosystem has made an effort to move to a strictly declarative system (i.e. setup.cfg or pyproject.toml).
In piwheels, we attempt builds on the lowest supported ABI first, then move higher until all supported ABIs are covered (either by a pure python wheel, or platform wheels for all). Therefore we attempted on cp34m, succeeded with a pure python wheel, and so stopped there. Unfortunately that had the consequence of being stuck with the cp34m-specific requirements.
Seeing as cp34m is now deprecated, the easiest solution is for us to remove that wheel, let it rebuild on the lowest supported ABI (now cp35m), which should yield a wheel without this legacy dependency.
I'll kick it off now, so you should soon see the file hash change from 965d59748a43f244eabef0abfe0bcdc8c4ec1a87e8fc78775f0a80c339013a40
to something else. Then you know it's a new file that's been built on Stretch / cp35m. Shouldn't take long to make its way through the system - so maybe a few minutes.
It's done now - can you confirm this fixes the problem?
Thank you very much for the quick response and fix! I can confirm that pip3 install aioxmpp
no longer installs typing
. 👌
Package name: aioxmpp Link to PyPI page: https://pypi.org/project/aioxmpp/ Link to piwheels page: https://www.piwheels.org/project/aioxmpp/ Version: 0.11.0 at least Python version: 3.7 at least I am the maintainer: No More information: Originated in https://github.com/horazont/aioxmpp/issues/350
Installing the
aioxmpp
0.11.0 with Python 3.7 and piwheels enabled causestyping
to be installed and constrainslxml
in the wrong way. According to https://github.com/horazont/aioxmpp/blob/6806113c48839dab55460679f9f8629c3fe39346/setup.py#L59 and https://github.com/horazont/aioxmpp/blob/6806113c48839dab55460679f9f8629c3fe39346/setup.py#L38, that should only be done if Python version <= 3.4.The reason this is a problem is that:
typing
from being installed.bosch-thermostat-client
that depends onaioxmpp
.With piwheels enabled:
Without piwheels enabled: