U Wzf_@sddlZddlZddlZddlZddlZddlmZddlmZddl Z ddl m Z ddl m Z ddZdd Zd d Zd d ZdS)N)log)DistutilsError) easy_install)WheelcCs(t|tr|St|ttfs$t|S)z8Ensure find-links option end-up being a list of strings.) isinstancestrsplittuplelistAssertionError) find_linksr l/private/var/folders/n9/53xbvtmd7sjg1q1l55xmpg58n4mgng/T/pip-unpacked-wheel-slp6y8a5/setuptools/installer.py_fixup_find_linkss rc Cs|ddgi}|d}||dd|dD|jr||jdd}d|krpt|dd|}d|f|d<|}t|d g|d d dd d d d d d }| ||S) zJFetch an egg needed for building. Legacy path using EasyInstall. script_argsrcss"|]\}}|dkr||fVqdS))r site_dirs index_urloptimizer allow_hostsNr ).0kvr r r sz*_legacy_fetch_build_egg..Nr setupxTF) args install_dirZexclude_scriptsZ always_copyZbuild_directoryeditableupgradeZ multi_versionZ no_reportuser) __class__get_option_dictclearupdateitemsdependency_linksrget_egg_cache_dirrensure_finalized)distreqZtmp_distoptslinksrcmdr r r_legacy_fetch_build_eggs6    r.c CsztdWn.tjk r<|dtjt||YSXztdWn$tjk rp|dtjYnXt|}|d}d|krt ddt j ksd t j krd }nd }d t j krd }nd|kr|dd}nd }d|krt |ddd d }ng}|j r||j t j|}t}t|D]$}||kr:||r:|Sq:t:} tjdddddd| g} |r| d|d k r| d|f|d k r|D]} | d| fq|jr| |jn| t|zt| Wn4tjk r4} zt t| | W5d } ~ XYnXtt t j!| dd} t j!|| "}| #|t$|t j!|d}tj%j&||d}|W5QRSQRXd S)zLFetch an egg needed for building. Use pip/wheel to fetch/build a wheel.pipzWARNING: The pip package is not available, falling back to EasyInstall for handling setup_requires/test_requires; this is deprecated and will be removed in a future version.wheelz,WARNING: The wheel package is not available.rrzQthe `allow-hosts` option is not supported when using pip to install requirements.Z PIP_QUIETZ PIP_VERBOSEFTZ PIP_INDEX_URLNrrr z-mz--disable-pip-version-checkz --no-depsz-wz--quietz --index-urlz --find-linksz*.whlrzEGG-INFO)metadata)' pkg_resourcesget_distributionDistributionNotFoundannouncerWARNr. strip_markerr"rosenvironrr&extendpathrealpathr' Environmentfind_distributionscan_addtempfileTemporaryDirectorysys executableappendurlr subprocess check_callCalledProcessErrorrglobjoinegg_nameZinstall_as_egg PathMetadata Distribution from_filename)r)r*r+quietrr Zeggs_dir environmentZegg_distZtmpdirr-linker0 dist_locationZ dist_metadatar r rfetch_build_egg6s            rTcCstjt|}d|_|S)z Return a new requirement without the environment marker to avoid calling pip with something like `babel; extra == "i18n"`, which would always be ignored. N)r2 Requirementparsermarker)r*r r rr7sr7)rIr8rFrBr@ distutilsrdistutils.errorsrr2Zsetuptools.command.easy_installrZsetuptools.wheelrrr.rTr7r r r rs     U