docs: def _link_package_versions(self, link, search_name):
          """
          Return an iterable of triples (pkg_resources_version_key,
          link, python_version) that can be extracted from the given
          link.
  
          Meant to be overridden by subclasses, not called by clients.
          """
          if link.egg_fragment:
              egg_info = link.egg_fragment
          else:
              egg_info, ext = link.splitext()
              if not ext:
                  if link not in self.logged_links:
                      logger.debug('Skipping link %s; not a file' % link)
                      self.logged_links.add(link)
                  return []
              if egg_info.endswith('.tar'):
                  # Special double-extension case:
                  egg_info = egg_info[:-4]
                  ext = '.tar' + ext
              if ext not in ('.tar.gz', '.tar.bz2', '.tar', '.tgz', '.zip'):
                  if link not in self.logged_links:
                      logger.debug('Skipping link %s; unknown archive format: %s' % (link, ext))
                      self.logged_links.add(link)
                  return []
          version = self._egg_info_matches(egg_info, search_name, link)
          if version is None:
              logger.debug('Skipping link %s; wrong project name (not %s)' % (link, search_name))
              return []
          match = self._py_version_re.search(version)
          if match:
              version = version[:match.start()]
              py_version = match.group(1)
              if py_version != sys.version[:3]:
                  logger.debug('Skipping %s because Python version is incorrect' % link)
                  return []
          logger.debug('Found link %s, version: %s' % (link, version))
          return [(pkg_resources.parse_version(version),
                 link,
                 version)]