From febfc6e907fe24cf20ba7cefc00e83a64079a8f2 Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Tue, 17 Jul 2018 02:45:57 -0400 Subject: [PATCH] Better algorithm for find_all_versions Signed-off-by: Dan Ryan --- pipenv/vendor/pythonfinder/pythonfinder.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pipenv/vendor/pythonfinder/pythonfinder.py b/pipenv/vendor/pythonfinder/pythonfinder.py index c74eadeb..792f5991 100644 --- a/pipenv/vendor/pythonfinder/pythonfinder.py +++ b/pipenv/vendor/pythonfinder/pythonfinder.py @@ -76,6 +76,11 @@ class Finder(object): def find_all_python_versions(self, major=None, minor=None, patch=None, pre=None, dev=None, arch=None): version_sort = operator.attrgetter("as_python.version_sort") + python_version_dict = getattr(self.system_path, 'python_version_dict') + if python_version_dict: + paths = [path for version in python_version_dict.values() for path in version] + paths = sorted(paths, key=version_sort, reverse=True) + return paths versions = self.system_path.find_all_python_versions(major=major, minor=minor, patch=patch, pre=pre, dev=dev, arch=arch) if not isinstance(versions, list): versions = [versions,]