code: def select(self, binary_request):
      
  
      logger.debug("binary_request: {!r}".format(binary_request))
  
      try:
        download_path = self._get_download_path(binary_request)
      except self.MissingMachineInfo as e:
        raise self.BinaryResolutionError(binary_request, e)
  
      try:
        url_generator = self._get_url_generator(binary_request)
      except self.NoBaseUrlsError as e:
        raise self.BinaryResolutionError(binary_request, e)
  
      urls = self._get_urls(url_generator, binary_request)
      if not isinstance(urls, list):
        # TODO: add test for this error!
        raise self.BinaryResolutionError(
          binary_request,
          TypeError("urls must be a list: was '{}'.".format(urls)))
      fetch_request = BinaryFetchRequest(
        download_path=download_path,
        urls=urls)
  
      logger.debug("fetch_request: {!r}".format(fetch_request))
  
      try:
        downloaded_file = self._binary_tool_fetcher.fetch_binary(fetch_request)
      except BinaryToolFetcher.BinaryNotFound as e:
        raise self.BinaryResolutionError(binary_request, e)
  
      # NB: we mark the downloaded file executable if it is not an archive.
      archiver = binary_request.archiver
      if archiver is None:
        chmod_plus_x(downloaded_file)
        return downloaded_file
  
      download_dir = os.path.dirname(downloaded_file)
      # Use the 'name' given in the request as the directory name to extract to.
      unpacked_dirname = os.path.join(download_dir, binary_request.name)
      if not os.path.isdir(unpacked_dirname):
        logger.info("Extracting {} to {} .".format(downloaded_file, unpacked_dirname))
        archiver.extract(downloaded_file, unpacked_dirname, concurrency_safe=True)
      return unpacked_dirname
docs: Fetches a file, unpacking it if necessary.