'Fetch an egg needed for building'

def fetch_build_egg(self, req):

    try:
        cmd = self._egg_fetcher
        cmd.package_index.to_scan = []
    except AttributeError:
        from setuptools.command.easy_install import easy_install
        dist = self.__class__({'script_args': ['easy_install']})
        dist.parse_config_files()
        opts = dist.get_option_dict('easy_install')
        keep = ('find_links', 'site_dirs', 'index_url', 'optimize', 'site_dirs', 'allow_hosts')
        for key in list(opts):
            if (key not in keep):
                del opts[key]
        if self.dependency_links:
            links = self.dependency_links[:]
            if ('find_links' in opts):
                links = (opts['find_links'][1].split() + links)
            opts['find_links'] = ('setup', links)
        cmd = easy_install(dist, args=['x'], install_dir=os.curdir, exclude_scripts=True, always_copy=False, build_directory=None, editable=False, upgrade=False, multi_version=True, no_report=True, user=False)
        cmd.ensure_finalized()
        self._egg_fetcher = cmd
    return cmd.easy_install(req)
