ó o2ÕUc@@s9ddlmZddlZddlZddlmZddlmZmZddl m Z m Z m Z m Z ddlmZmZddlmZddlmZmZmZmZmZdd lmZdd lmZdd lmZddlZej e!ƒZ"d e#fd „ƒYZ$de#fd„ƒYZ%dS(i(tabsolute_importN(t pkg_resources(t url_to_patht unpack_url(tInstallationErrortBestVersionAlreadyInstalledtDistributionNotFoundtPreviousBuildDirError(tPIP_DELETE_MARKER_FILENAMEt build_prefix(tInstallRequirement(t display_pathtrmtreetdist_in_usersitet_make_build_dirtnormalize_path(t indent_log(tvcs(t wheel_extt RequirementscB@sGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cC@sg|_i|_dS(N(t_keyst_dict(tself((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt__init__s cC@s|jS(N(R(R((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pytkeysscC@s!g|jD]}|j|^q S(N(RR(Rtkey((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pytvalues!scC@s ||jkS(N(R(Rtitem((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt __contains__$scC@s3||jkr"|jj|ƒn||j|\st (R0Rt comes_fromtsortR"tstrR@(RR@treqs((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt__str__YscC@sè|jƒs)tjd|j|jƒdS|j}|j|_|j|_|j|_|j|_|s{|j j |ƒni|j |ƒr¯t d||j |ƒ|fƒ‚n||j|<|jƒ|krä||j|jƒtmarkersR7R8R9R;R2Rthas_requirementRtget_requirementR0R?R1(Rt install_reqR>((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pytadd_requirement_s$        cC@sCx<||jƒfD](}||jks7||jkrtSqWtS(N(R?R0R1tTruetFalse(Rt project_nameR>((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyRLwscC@st|jjƒƒp|jS(N(tlistR0RR2(R((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pythas_requirements}scC@sg|jrctjj|jƒ|_tjj|jƒr:tStjdƒtdt |jƒƒ‚nt S(Ns!Could not find download directorys0Could not find or access download directory '%s'( R,tostpatht expandusertexistsRPRItcriticalRR RQ(R((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt is_downloads  cC@slxU||jƒfD]A}||jkr3|j|S||jkr|j|j|SqWtd|ƒ‚dS(NsNo project with the name %r(R?R0R1tKeyError(RRRR>((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyRMŽs  cC@s8x1|jjƒD] }|jd|ƒ|jƒqWdS(Nt auto_confirm(R0Rt uninstalltcommit_uninstall(RR\R@((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyR]–scC@s†t|jƒ}t|jjƒƒ}x[|s3|r|rK|jdƒ}n|jdƒ}t}|j rì|j rì|jƒ|j rÍ|j rÄ|j o¦t |j ƒ s¸|j |_ nd|_ qÍt}n|j rìtjd|ƒqìn|jr|jdkr=|j|jƒ|_q=n|r=|j|jƒ|_n|jdk r'tjj|jƒ r'td||jfƒ‚q'q'WdS(Nis<Requirement already satisfied (use --upgrade to upgrade): %ss¨Could not install requirement %s because source folder %s does not exist (perhaps --no-download was used without first running an equivalent install with --no-install?)(RSR2R0RtpopRPR.teditabletcheck_if_existst satisfied_byR-R8R tconflicts_withR(RQRItinfot source_dirtbuild_locationR+R*RURVtisdirR(RtunnamedRFtreq_to_installtinstall_needed((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt locate_files›sB          c C@séddlm}t|jƒ}t|jjƒƒ}x®|sC|rä|r[|jdƒ}n|jdƒ}t}t}d}|j rž|j rž|j ƒ|j rf|jr]|j r |j r y|j||jƒ} Wn5tk røt}t}q tk r} | }q X| j|_n|sc|jo<t|j ƒ sN|j |_nd|_ qcqft}n|j rž|rˆtjd|ƒq›tjd|ƒqžn|j rºtjd|ƒnb|r|jr |jjƒjdƒr t|jƒ} tjdt| ƒƒqtjd|ƒntƒºt} |j rÔ|jdkrb|j|j ƒ} | |_n |j} t!j"j#|j$ƒst%|j$ƒn|j&|j' ƒ|j'rÇ|j(ƒ|j)|j*ƒqi|j(ƒn•|ri|j|j$ƒ} t}d} t!j"j#t!j"j+| d ƒƒr2t,d || fƒ‚n|jdkrk|rP|‚n|j|d |jƒ} n||jƒ} | s†t-‚| r3y_| j.j/t0ƒr¼|j1r¼|j1}t}n|j*}|j'}t2| | ||d |j3ƒWq9t4j5k r/} tj6d || ƒt7d|| | fƒ‚q9Xnt}|ri| oT| j.j/t0ƒ} |j'rª| |_| s||j(ƒn| rå| j8t9j:krå|j)|j*ƒqån;| rÈ| |_| j|_n| |_|j(ƒ|j;ƒ|j sû|j ƒn|j rf|js|j rJ|jo,t|j ƒ s>|j |_nd|_ qctjd|ƒt}qfqin|j<r‘tj=ddj+|j<ƒƒn| r³tt>j?| ƒƒd}nI|j rÈ|j }n |j@ƒ}|jAdƒrü|jB|jCdƒƒn|jDsuxm|jE|j<ƒD]V}|jF|jGƒr6qntHtI|ƒ|d|jJƒ}|jK|ƒ|jL|ƒqWn|jF|jMƒs—|jL|ƒn|j's¯|jNdk rÂ|jOjK|ƒn|rÛ|jPjK|ƒnWdQXq7WdS(sY Prepare process. Create temp directories, download and/or unpack files. i(tLinks"Requirement already up-to-date: %ss<Requirement already satisfied (use --upgrade to upgrade): %ss Obtaining %ssfile:s Processing %ss Collecting %sssetup.pysípip can't proceed with requirements '%s' due to a pre-existing build directory (%s). This is likely due to a previous installation that failed. pip is being responsible and not assuming it can delete this. Please delete it and try again.R-R:s4Could not install requirement %s because of error %ssDCould not install requirement %s because of HTTP error %s for URL %ss!Installing extra requirements: %rt,sdependency_links.txtR<N(Qt pip.indexRlRSR2R0RR_RPRQR(R.R`RaRbR-R/turltfind_requirementRRR8R RcRIRdR?t startswithRR RReRfR+RURVRXR*Rtupdate_editableRZt run_egg_infotarchiveR,R"RtAssertionErrortfilenametendswithRR=RR:trequestst HTTPErrorRYRtschemeRt all_schemestassert_source_matches_versiontextrasRJRtfind_distributionstget_distt has_metadatatadd_dependency_linkstget_metadata_linesR3trequiresRLRRR RER<RROR>t_temp_build_dirR6R4(RtfinderRlRhRFRitinstalltbest_installedt not_foundRotexcRVtis_wheeltlocationtunpackR,t do_downloadtdisttsubreq((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt prepare_filesÏs<                      !                                 cC@sntjdƒtƒRx|jD]}|jƒq!W|jƒrdtjd|jƒt|jƒnWdQXdS(sClean up files, remove builds.sCleaning up...sRemoving temporary dir %s...N(RIRJRR6tremove_temporary_sourcet_pip_has_created_build_dirR*R (RR@((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyt cleanup_filesÍs   cC@s1|jtko0tjjtjj|jtƒƒS(N(R*R RURVRXR"R(R((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyR’Øs c O@s g|jjƒddd…D]}|js|^q}tjjdƒ}xX|D]P}|jdkrQ|jdk rQ|j|krQ|j |ƒ|j |ƒqQqQW|rÝt j ddj g|D]}|j^qÁƒƒntƒ+x#|D]} | jdkrZy=tjjdƒ} tjdƒ} | | kr?| | _nWqZtjk rVqZXn| jr™t j d | jƒtƒ| jd tƒWdQXny| j||||ŽWn*| jrÙ| j rÙ| jƒn‚n X| jrÿ| jrÿ| jƒn| jƒqîWWdQX||_dS( sl Install everything in this set (after having downloaded and unpacked the packages) Niÿÿÿÿsdistribute>=0.7t distributes!Installing collected packages: %ss, t setuptoolssdistribute<0.7sFound existing installation: %sR\(R0RRbRt RequirementtparseR>tinstalled_versionR(tremoveRRIRdR"Rtget_distributionRcRR]RPR†tinstall_succeededtrollback_uninstallR^R‘R5( Rtinstall_optionstglobal_optionstargstkwargstrt to_installtdistribute_reqR@t requirementtdistribute_requirementtexisting_distribute((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyR†àsZ#  )             N((R%R&RQR(RPRRGRORLtpropertyRTRZRMR]RkRR“R’R†(((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyR'4s"        4 þ (&t __future__RtloggingRUt pip._vendorRt pip.downloadRRtpip.exceptionsRRRRt pip.locationsRR tpip.req.req_installR t pip.utilsR R R RRtpip.utils.loggingRtpip.vcsRt pip.wheelRRxt getLoggerR%RItobjectRR'(((s5/usr/lib/python2.7/vendor-packages/pip/req/req_set.pyts  "(