#!/usr/bin/env python """ Filter out wheel filenames not supported on this platform """ from __future__ import print_function import sys from os.path import basename from packaging.tags import sys_tags try: from wheel.install import WHEEL_INFO_RE as wheel_matcher except ImportError: # As of Wheel 0.32.0 from wheel.wheelfile import WHEEL_INFO_RE wheel_matcher = WHEEL_INFO_RE.match def tags_for(fname): # Copied from WheelFile code parsed_filename = wheel_matcher(basename(fname)) tags = parsed_filename.groupdict() for pyver in tags['pyver'].split('.'): for abi in tags['abi'].split('.'): for plat in tags['plat'].split('.'): yield (pyver, abi, plat) def main(): supported = { (tag.interpreter, tag.abi, tag.platform) for tag in sys_tags() } for fname in sys.argv[1:]: tags = set(tags_for(fname)) if supported.intersection(tags): print(fname) if __name__ == '__main__': main()