

def run(self, options, args):
    cmdoptions.resolve_wheel_no_use_binary(options)
    cmdoptions.check_install_build_global(options)
    if options.download_dir:
        options.ignore_installed = True
    if options.build_dir:
        options.build_dir = os.path.abspath(options.build_dir)
    options.src_dir = os.path.abspath(options.src_dir)
    install_options = (options.install_options or [])
    if options.use_user_site:
        if virtualenv_no_global():
            raise InstallationError("Can not perform a '--user' install. User site-packages are not visible in this virtualenv.")
        install_options.append('--user')
    temp_target_dir = None
    if options.target_dir:
        options.ignore_installed = True
        temp_target_dir = tempfile.mkdtemp()
        options.target_dir = os.path.abspath(options.target_dir)
        if (os.path.exists(options.target_dir) and (not os.path.isdir(options.target_dir))):
            raise CommandError('Target path exists but is not a directory, will not continue.')
        install_options.append(('--home=' + temp_target_dir))
    global_options = (options.global_options or [])
    index_urls = ([options.index_url] + options.extra_index_urls)
    if options.no_index:
        logger.info('Ignoring indexes: %s', ','.join(index_urls))
        index_urls = []
    if options.download_cache:
        warnings.warn('--download-cache has been deprecated and will be removed in the future. Pip now automatically uses and configures its cache.', RemovedInPip8Warning)
    with self._build_session(options) as session:
        finder = self._build_package_finder(options, index_urls, session)
        build_delete = (not (options.no_clean or options.build_dir))
        wheel_cache = WheelCache(options.cache_dir, options.format_control)
        with BuildDirectory(options.build_dir, delete=build_delete) as build_dir:
            requirement_set = RequirementSet(build_dir=build_dir, src_dir=options.src_dir, download_dir=options.download_dir, upgrade=options.upgrade, as_egg=options.as_egg, ignore_installed=options.ignore_installed, ignore_dependencies=build_delete.ignore_dependencies, force_reinstall=options.force_reinstall, use_user_site=options.use_user_site, target_dir=temp_target_dir, session=session, pycompile=options.compile, isolated=options.isolated_mode, wheel_cache=wheel_cache)
            self.populate_requirement_set(requirement_set, args, options, finder, session, self.name, wheel_cache)
            if (not requirement_set.has_requirements):
                return
            try:
                if (options.download_dir or (not wheel) or (not options.cache_dir)):
                    requirement_set.prepare_files(finder)
                else:
                    wb = WheelBuilder(requirement_set, finder, build_options=[], global_options=[])
                    wb.build(autobuilding=True)
                if (not options.download_dir):
                    requirement_set.install(install_options, global_options, root=options.root_path)
                    reqs = sorted(requirement_set.successfully_installed, key=operator.attrgetter('name'))
                    items = []
                    for req in reqs:
                        item = req.name
                        try:
                            if hasattr(req, 'installed_version'):
                                if req.installed_version:
                                    item += ('-' + req.installed_version)
                        except Exception:
                            pass
                        items.append(item)
                    installed = ' '.join(items)
                    if installed:
                        logger.info('Successfully installed %s', installed)
                else:
                    downloaded = ' '.join([req.name for req in requirement_set.successfully_downloaded])
                    if downloaded:
                        logger.info('Successfully downloaded %s', downloaded)
            except PreviousBuildDirError:
                options.no_clean = True
                raise
            finally:
                if (not options.no_clean):
                    requirement_set.cleanup_files()
    if options.target_dir:
        ensure_dir(options.target_dir)
        lib_dir = distutils_scheme('', home=temp_target_dir)['purelib']
        for item in os.listdir(lib_dir):
            target_item_dir = os.path.join(options.target_dir, item)
            if os.path.exists(target_item_dir):
                if (not options.upgrade):
                    logger.warning('Target directory %s already exists. Specify --upgrade to force replacement.', target_item_dir)
                    continue
                if os.path.islink(target_item_dir):
                    logger.warning('Target directory %s already exists and is a link. Pip will not automatically replace links, please remove if replacement is desired.', target_item_dir)
                    continue
                if os.path.isdir(target_item_dir):
                    shutil.rmtree(target_item_dir)
                else:
                    os.remove(target_item_dir)
            shutil.move(os.path.join(lib_dir, item), target_item_dir)
        shutil.rmtree(temp_target_dir)
    return requirement_set

dataset/ETHPy150Open francelabs/datafari/windows/python/Lib/site-packages/pip/commands/install.py InstallCommand.run/VarMisuse@387/627 `options`->`build_delete`