I noticed that for PyPy3, the tag triples considered compatible were (roughly; trimmed out the long list of macOS versions):

    [('pp360', 'pypy3_60', 'macosx_10_13_x86_64'),
     ('pp360', 'none', 'macosx_10_13_x86_64'),
      ('py3', 'none', 'macosx_10_13_x86_64'),
     ('pp360', 'none', 'any'),
     ('pp3', 'none', 'any'),
     ('py360', 'none', 'any'),
     ('py3', 'none', 'any')]

Now the first question I have is about ('pp3', 'none', 'any'). Is this meant to be a generic thing for any interpreter of the interpreter implementation and major version, or is this special to CPython and PyPy3?

Question two is why isn't there a ('py35', 'none', 'any') or ('py34', 'none', 'any') and older to py30 after py3 like there is for CPython? Seems like if they are just source then they should be compatible as much as CPython.

Question three is why isn't there a ('py35', 'none', 'macosx_10_13_x86_64') for PyPy3 or CPython 3.7? I can't figure out what a Python- and platform-specific wheel but agnostic to API wouldn't ever work?

And I'm assuming ('py360', 'none', 'any'), isn't legitimate since that makes no sense. ;)