From ff395f4a820497a443baa6cd0198c49b06207c3f Mon Sep 17 00:00:00 2001 From: Tomas Orsava Date: Thu, 16 Feb 2017 11:36:29 +0100 Subject: [PATCH] Fix pythondistdeps.py --provides for Python wheels As Python wheels do not contain targetted Python version in the directory/file name of their metadata like Python eggs do, and since the Python version is not contained in the metadata either, it is necessary to get it from elsewhere. Here it is parsed from the path the metadata resides at (e.g. /usr/lib/pythonX.Y/site-packages/...) --- scripts/pythondistdeps.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/pythondistdeps.py b/scripts/pythondistdeps.py index e4b99e2..d44210c 100644 --- a/scripts/pythondistdeps.py +++ b/scripts/pythondistdeps.py @@ -107,10 +107,17 @@ for f in files: path_item = f metadata = FileMetadata(f) dist = Distribution.from_location(path_item, dist_name, metadata) - # Check if py_version is defined in the file + # Check if py_version is defined in the metadata file/directory name if not dist.py_version: - warn("Version for {!r} has not been found".format(dist), RuntimeWarning) - continue + # Try to parse the Python version from the path the metadata + # resides at (e.g. /usr/lib/pythonX.Y/site-packages/...) + import re + res = re.search(r"/python(?P\d+\.\d)/", path_item) + if res: + dist.py_version = res.group('pyver') + else: + warn("Version for {!r} has not been found".format(dist), RuntimeWarning) + continue if (Provides_PyMajorVer_Variant or legacy_Provides or legacy) and Provides: # Get the Python major version pyver_major = dist.py_version.split('.')[0] -- 2.11.0