diff --git a/news/14122.bugfix.rst b/news/14122.bugfix.rst new file mode 100644 index 0000000000..9d0f2e986a --- /dev/null +++ b/news/14122.bugfix.rst @@ -0,0 +1,2 @@ +Improve cached wheel lookup performance when many cached wheels are checked +for compatibility. diff --git a/src/pip/_internal/cache.py b/src/pip/_internal/cache.py index 0bcb697542..da2f8eb783 100644 --- a/src/pip/_internal/cache.py +++ b/src/pip/_internal/cache.py @@ -138,6 +138,7 @@ def get( return link canonical_package_name = canonicalize_name(package_name) + supported_tags_set = set(supported_tags) for wheel_name, wheel_dir in self._get_candidates(link, canonical_package_name): try: wheel = Wheel(wheel_name) @@ -152,7 +153,7 @@ def get( package_name, ) continue - if not wheel.supported(supported_tags): + if not wheel.supported(supported_tags_set): # Built for a different python/arch/etc continue candidates.append(