And to help in getting a reply, here is the trimmed-down results for CPython 3.7 to compare against:
[('cp37', 'cp37m', 'macosx_10_13_x86_64'),
…
('cp37', 'abi3', 'macosx_10_13_x86_64'),
…
('cp37', 'none', 'macosx_10_13_x86_64'),
…
('cp36', 'abi3', 'macosx_10_13_x86_64'),
…
('cp35', 'abi3', 'macosx_10_13_x86_64'),
…
('cp34', 'abi3', 'macosx_10_13_x86_64'),
…
('cp33', 'abi3', 'macosx_10_13_x86_64'),
…
('cp32', 'abi3', 'macosx_10_13_x86_64'),
…
('py3', 'none', 'macosx_10_13_x86_64'),
…
('cp37', 'none', 'any'),
('cp3', 'none', 'any'),
('py37', 'none', 'any'),
('py3', 'none', 'any'),
('py36', 'none', 'any'),
('py35', 'none', 'any'),
('py34', 'none', 'any'),
('py33', 'none', 'any'),
('py32', 'none', 'any'),
('py31', 'none', 'any'),
('py30', 'none', 'any')]
So, it re-iterate the questions:
- What is ('pp3', 'none', 'any') supposed to represent for PyPy3? Since the version of the interpreter is PyPy3 6.0 the lack of major version number seems like a bug more than a purposeful interpreter version (and there's only a single project -- cliquet -- that has a wheel that's compatible with that tag triple and it's not even for their latest release).
- Why does CPython have (*, 'none', 'any') from the version of the interpreter down to Python 3.0 plus generically Python 3 while PyPy3 only gets generic Python 3?
- Why isn't (*, 'none', platform) listed from Python 3.7 to 3.0 for either CPython or PyPy3? I understand not iterating through all versions when an ABI is involved (without knowing exactly which versions are compatible like abi3), but this triple seems safe to iterate through as a fallback just as much as (*, 'none', 'any'). Maybe because it's too ambiguous to know how important such a fallback would be between e.g. ('py36', 'none', 'macosx_10_13_x86_64') and ('py37', 'none', 'any'), and so why bother when the older version triples are there just for a safety net to have at least some chance of a match?
- I still think ('py360', 'none', 'any') is a bug. ;)
P.S.: The ('py3', 'none', 'macosx_10_13_x86_64') triple being between e.g. ('pp360', 'none', 'macosx_10_13_x86_64') and ('pp360', 'none', 'any') is really messing with my head and making the code to generate supported triples a bit less elegant. ;)