Description
What's the problem this feature will solve?
For non pure python, non abi3-wheel packages, it's often challenging to be able to determine if a wheel is available for a given platform and (C)Python version.
Currently, a user has to wade through a long list of wheel file names and decipher their meaning. For example, try to quickly determine which Python versions and platforms are supported by pydantic-core
2.7.0:
Some projects have specific wheels for some CPython versions, but not others. For example, lxml
4.9.3 has macOS universal wheels (i.e., supports ARM) for CPython 3.11 and 3.12 only, but has x86-only wheels for 3.6-3.10.
Tracking down why pip or a workflow tool like Poetry can't resolve a wheel for a specific configuration can be challenging, especially for beginners who aren't familiar with the wheel filename format.
Another problem that this helps solve is to remove one of the uses of the Programming Language :: Python :: 3.x
trove classifiers, which some in the community do like using (e.g., it requires a package to do a release just to update the trove classifier when otherwise it might not be needed). This table would make it easy for users of non pure Python, non abi3-wheel packages to quickly see which Python versions have wheels published for, rather than needing to look at the trove classifiers.
Describe the solution you'd like
Display a simple table that summarizes the available wheels for PyPI project releases on their PyPI page. If a project is pure Python and only has a pure Python wheel, this table could be omitted or otherwise simplified to a statement such as "Pure Python" or "All Platforms".
A quick and dirty draft of the idea:
Python Version | win_amd64 | macosx_11_0_universal2 | manylinux_2_28_x86_64 |
---|---|---|---|
CPython 3.8 | ✅ | ✅ | ✅ |
CPython 3.9 | ✅ | ✅ | |
PyPy 3.9 7.3 | ✅ |
Additional context
This was originally discussed at:
@hugovk had some additional ideas, including inverting the rows/columns to make the information flow "down" more than "wide"