def handle_requirement(self, req, finder):
        """
        Download requirement, return a new requirement set of
        requirements dependencies.
        """
        if req.editable:
            msg = "Editables not supported: %s" %req
            logger.warn(msg)
            self.errors.append("%s: %s" %(req, msg)) 
            return

        try:
            url = finder.find_requirement(req, self.upgrade)
        except DistributionNotFound:
            msg = "No distribution found for %s" %req.name
            logger.warn(msg)
            self.errors.append(msg)
            return
        
        if url.hash in self.seen:
            logger.debug('Seen: %s', url)
            self.skip.append(url)
            return 
            
        try:
            pkginfo, outfile = self.download_url(url)
        except __HOLE__, e:
            msg = "Issue with download: %s" %e
            logger.error(msg)
            self.errors.append("%s: %s" %(req, msg)) 
            return
        except TypeError:
            raise
        except Exception, e:
            msg = "Issue with archive: %s" %e
            logger.error(msg)
            self.errors.append("%s: %s" %(req, msg)) 
            return

        self.seen.add(outfile.read_md5().encode('hex'))
        deplinks, reqs = self.depinfo_for_file(outfile)
        if not reqs:
            return pkginfo, outfile, None
        
        content = "\n".join(reqs)
        pkg = "%s-%s" %(pkginfo.name, pkginfo.version)
        req_set, _ = self.req_set_from_file(self.temp_req(pkg, content),
                                            self.download_dir,
                                            deplinks=deplinks)
        return pkginfo, outfile, req_set,
dataset/ETHPy150Open SMFOSS/CheesePrism/cheeseprism/pipext.py/RequirementDownloader.handle_requirement