ó •�abc@@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl mZddlmZddlmZmZddlmZddlmZdd lmZmZdd lmZdd lmZmZ dd l!m"Z"ddl#Z$dd l%m&Z&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0ddl1m2Z2m3Z3m4Z4m5Z5ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFddlGmHZHddlImJZJddlKmLZLddlMmNZNddlOmPZPddlQmRZRddlSmTZTddl#mUZUmVZVejWeXƒZYejZj[j\ƒZ]d„Z^d„Z_de`fd„ƒYZad„Zbecd„ZddS( i(tabsolute_importN(t sysconfig(t change_root(t FeedParser(t pkg_resourcestsix(t specifiers(tMarker(tInvalidRequirementt Requirement(tcanonicalize_name(tVersiontparse(t configparser(t native_strt get_stdlibtWINDOWS(tis_urlt url_to_patht path_to_urltis_archive_file(tInstallationErrortUninstallationError(tbin_pytrunning_under_virtualenvtPIP_DELETE_MARKER_FILENAMEtbin_user(t display_pathtrmtreetask_path_existst backup_dirtis_installable_dirtdist_in_usersitetdist_in_site_packagest egg_link_pathtcall_subprocesstread_text_filetFakeFilet_make_build_dirt ensure_dirtget_installed_versiontnormalize_patht dist_is_local(tHashes(tRemovedInPip10Warning(t indent_log(tSETUPTOOLS_SHIM(t open_spinner(tUninstallPathSet(tvcs(tmove_wheel_filestWheelcC@sOtjd|ƒ}d}|r?|jdƒ}|jdƒ}n|}||fS(Ns^(.+)(\[[^\]]+\])$ii(tretmatchtNonetgroup(tpathtmtextrastpath_no_extras((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt _strip_extras9scC@std„|DƒƒS(Ncs@s|]}tj|ƒVqdS(N(Rt safe_extra(t.0textra((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys Fs(tset(R:((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt _safe_extrasEstInstallRequirementc B@seZd'ed'eeed'ed'd'ed„ Zed'd'ed'd'ed„ƒZed'ed'd'ed„ƒZd„Z d„Z d„Z e d„ƒZ e d„ƒZd„Zd „Zd „Ze d „ƒZe d „ƒZe d „ƒZd„Zd„Zd„Zd„ZejdƒZe d„ƒZd„Zed„Zed„Zd„Z d„Z!d„Z"d„Z#d'd„Z$gd'd'd'd„Z%d„Z&d„Z'd„Z(d(d'd „Z)d!„Z*e d"„ƒZ+d'd'd'd#„Z,d$„Z-e d%„ƒZ.ed&„Z/RS()c@sÓd|_tˆtjƒrÃytˆƒ‰Wn€tk r­tjjˆkrVd}n>dˆkrˆt ‡fd†t Dƒƒ rˆd}n t j ƒ}t dˆ|fƒ‚nXtˆjƒ|_nˆ|_||_| |_||_||_| |_||_|_||_| dk r*| |_nˆo6ˆj|_d|_d|_d|_d|_d|_||_ d|_!d|_"t#|_$t#|_%d|_&| r«| ni|_'||_(t#|_)| |_*dS(Ns%It looks like a path. Does it exist ?t=c3@s|]}|ˆkVqdS(N((R>top(treq(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys Vss,= is not a valid operator. Did you mean == ?sInvalid requirement: '%s' %s((+R:t isinstanceRt string_typesR RtosR8tseptanyt operatorst tracebackt format_excRRAREt comes_fromt constraintt source_dirteditablet _wheel_cachetlinkt original_linktas_eggR6tmarkerstmarkert_egg_info_patht satisfied_bytconflicts_witht_temp_build_dirt_ideal_build_dirtupdatetinstall_succeededt uninstalledtFalsetnothing_to_uninstallt use_user_sitet target_dirtoptionst pycompiletpreparedtisolated(tselfRERNRPRQRSRUR]ReRVRgRdt wheel_cacheROtadd_msg((REs7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__init__KsN   )                        cC@s¹ddlm}t||ƒ\} } } | jdƒrFt| ƒ} nd} || |d| dtd|| ƒd|d|d |rˆ|nid |ƒ} | dk rµt| ƒ| _n| S( Ni(tLinksfile:RPRQRSRORgRdRi( t pip.indexRltparse_editablet startswithRR6tTrueRAR:(tclst editable_reqRNt default_vcsRgRdRiRORltnameturltextras_overrideRPtres((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt from_editable‰s    cC@s ddlm}t|ƒr%d}nd}||kry|j|dƒ\}} | jƒ} | sjd} qt| ƒ} nd} |jƒ}d} tjj tjj |ƒƒ} d} d} t|ƒrÖ||ƒ} n¿t | ƒ\}} tjj |ƒrOtjj |ks|jdƒrOt|ƒs:td|ƒ‚n|t|ƒƒ} nFt|ƒr•tjj|ƒs€tjd|ƒn|t|ƒƒ} n| r,| jd krïtjd | jƒrï|ttjj tjj | jƒƒƒƒ} n| jr t| jƒ}d |j|jf} q2| j} n|} |r>|ni}|| |d | d | d|d|d|d|ƒ}| rœt t!d| ƒj"ƒ|_"n|S(sŒCreates an InstallRequirement from a name, which might be a requirement, directory containing 'setup.py', filename, or URL. i(Rls; t;it.s;Directory %r is not installable. File 'setup.py' not found.sARequirement %r looks like a filename, but the file does not existtfiles\.\./s%s==%sRSRVRgRdRiROt placeholderN(#RmRlRtsplittstripR6RRHR8tnormpathtabspathR<tisdirRIRoRRRRtisfiletloggertwarningtschemeR4tsearchRutis_wheelR3tfilenameRttversiont egg_fragmentRAR R:(RqRtRNRgRdRiRORlt marker_sepRVRER8RSR:tptwheelRw((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt from_line£sb       !    $-   cC@sÙ|jr;t|jƒ}|jrV|d|jj7}qVn|jrP|jjnd}|jdk r‚|dt|jjƒ7}n|jrÕt |jt j ƒr¬|j}n|jj ƒ}|rÕ|d|7}qÕn|S(Ns from %ss in %ss (from %s)( REtstrRSRuR6RYRtlocationRNRFRRGt from_path(RhtsRN((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__str__ós    cC@s d|jjt|ƒ|jfS(Ns<%s object: %s editable=%r>(t __class__t__name__R�RQ(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__repr__scC@s�|jdkr'|j||ƒ|_n|jdk rŒ| rŒ|j}|jj|j|jƒ|_||jkrŒtjd|jƒqŒndS(sEnsure that if a link can be found for this, that it is found. Note that self.link may still be None - if Upgrade is False and the requirement is already installed. If require_hashes is True, don't use the wheel cache, because cached wheels, always built locally, have different hashes than the files downloaded from the index server and thus throw false hash mismatches. Furthermore, cached wheels at present have undeterministic contents due to file modification times. sUsing cached wheel link: %sN(RSR6tfind_requirementRRt cached_wheelRtRƒtdebug(Rhtfindertupgradetrequire_hashestold_link((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt populate_link s  cC@s |jjS(N(REt specifier(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRŸscC@s4|j}t|ƒdko3tt|ƒƒjdkS(s„Return whether I am pinned to an exact version. For example, some-package==1.2 is pinned; some-package>1.2 is not. is==s===(s==s===(RŸtlentnexttitertoperator(RhR((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt is_pinned!s cC@sy|jdkrdSt|jƒ}|jrut|jtjƒrL|j}n|jjƒ}|ru|d|7}qun|S(Ns->(RER6R�RNRFRRGR‘(RhR’RN((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR‘+s  cC@s¼|jdk r|jS|jdkrVtjjtjddƒƒ|_||_|jS|j rq|j j ƒ}n |j }tjj |ƒs©t jd|ƒt|ƒntjj||ƒS(Ns-buildspip-sCreating directory %s(R[R6RERHR8trealpathttempfiletmkdtempR\RQRttlowertexistsRƒR™R&tjoin(Rht build_dirRt((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytbuild_location8s     cC@s¼|jdk rdS|j}d|_|j|jƒ}tjj|ƒrbtdt |ƒƒ‚nt j d|t |ƒt |ƒƒt j ||ƒ||_d|_||_d|_dS(s�Move self._temp_build_dir to self._ideal_build_dir/self.req.name For some requirements (e.g. a path to a directory), the name of the package is not available until we run egg_info, so the build_location will return a temporary directory and store the _ideal_build_dir. This is only called by self.egg_info_path to fix the temporary build directory. Ns<A package already exists in %s; please remove it to continues,Moving package %s from %s to new location %s(RPR6R[R¬R\RHR8R©RRRƒR™tshutiltmoveRX(Rht old_locationt new_location((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt_correct_build_locationSs"      cC@s,|jdkrdSttj|jjƒƒS(N(RER6RRt safe_nameRt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRtsscC@s+tjj|j|jr$|jjp'dƒS(Nt(RHR8RªRPRStsubdirectory_fragment(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt setup_py_dirys cC@sªyddl}WnHtk rZtdƒdkr;d}n tjƒ}td|ƒ‚nXtjj |j dƒ}t j r¦t |t jƒr¦|jtjƒƒ}n|S(Nit setuptoolssPlease install setuptools.sWCould not import setuptools which is required to install from a source distribution. %sssetup.py(R¶t ImportErrorR(R6RLRMRRHR8RªRµRtPY2RFt text_typetencodetsystgetfilesystemencoding(RhR¶Rjtsetup_py((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR½s   c C@sÕ|jr%tjd|j|jƒntjd|j|jƒtƒ�­t|j}tjd|g}|j r€|dg7}n|dg}|j rŸg}n.t j j |jdƒ}t|ƒddg}t||d|jd td d ƒWdQX|jsott|jƒd ƒtƒr'd }nd}tdj |jƒd||jƒd gƒƒ|_|jƒnbt|jƒdƒ}t|jjƒ|krÑtjd|j|j||jƒt|ƒ|_ndS(Ns2Running setup.py (path:%s) egg_info for package %ss7Running setup.py (path:%s) egg_info for package from %ss-cs --no-user-cfgtegg_infos pip-egg-infos --egg-basetcwdt show_stdoutt command_descspython setup.py egg_infoR s==s===R³tNamesuRunning setup.py (path:%s) egg_info for package %s produced metadata for project name %s. Fix your #egg=%s fragments.(RtRƒR™R½RSR-R.R»t executableRgRQRHR8RªRµR'R#R`RERFt parse_versiontpkg_infoR R R±R R„(Rhtscripttbase_cmdt egg_info_cmdtegg_base_optiont egg_info_dirRDt metadata_name((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt run_egg_info—sN                cC@sj|jdk r5|jj|ƒs%dS|jj|ƒS|j|ƒ}tjj|ƒsZdSt|ƒ}|S(N( RYR6t has_metadatat get_metadatat egg_info_pathRHR8R©R$(RhRˆtdata((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt egg_info_dataÑs c C@s |jdkr |jr$|j}ntjj|jdƒ}tj|ƒ}|jr¤g}xtj |ƒD] \}}}x-t j D]"}||krƒ|j |ƒqƒqƒWxšt |ƒD]Œ}tjjtjj||ddƒƒs tjjtjj||ddƒƒr|j |ƒq¶|dks2|dkr¶|j |ƒq¶q¶W|jg|D]}tjj||ƒ^qSƒqjWg|D]}|jdƒr€|^q€}n|sÃtd ||fƒ‚nt|ƒd krë|jd d „ƒntjj||d ƒ|_ntjj|j|ƒS(Ns pip-egg-infotbintpythontScriptss Python.exettestttestss .egg-infos$No files/directories in %s (from %s)itkeycS@s8|jtjjƒtjjr3|jtjjƒp6dS(Ni(tcountRHR8RItaltsep(tx((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt si(RXR6RQRPRHR8RªRµtlistdirtwalkR1tdirnamestremovetlisttlexistsR©textendtendswithRR tsort( RhRˆtbaset filenamestroottdirstfilestdirtf((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRÏÝs>        *+  cC@s]tƒ}|jdƒ}|s@tjdt|jdƒƒƒn|j|pOdƒ|jƒS(NsPKG-INFOsNo PKG-INFO file found in %sR³(RRÑRƒR„RRÏtfeedtclose(RhRŒRÐ((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRÅs s \[(.*?)\]cC@s t|jƒS(N(R(Rt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytinstalled_version scC@sj|jƒd}|jjrG||jjkrGtjd||jƒntjdt|jƒ||ƒdS(NR‰s'Requested %s, but installing version %ss;Source in %s has version %s, which satisfies requirement %s( RÅRERŸRƒR„RîR™RRP(RhR‰((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytassert_source_matches_version$s  cC@s¸|js tjd|jƒdS|jjdkr6dS|jsCdS|jjjddƒ\}}tj |ƒ}|r´||jjƒ}|r¡|j |jƒq´|j |jƒndS(Ns>Cannot update repository at %s; repository location is unknownR{t+i( RSRƒR™RPR…R]RuR}R1t get_backendtobtaintexport(RhRòtvc_typeRutbackendt vcs_backend((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytupdate_editable5s"   cC@sð|jƒs%td|jfƒ‚n|jp4|j}t|jƒ}t|ƒs{tj d|j |t j ƒt |_dS|tƒkr­tj d|j |ƒt |_dSt|ƒ}t|ƒ}djtj|jƒƒ}|joûtjj|jƒ}t|jddƒ}|rŠ|jjdƒrŠ|jj|ƒ rŠ|j|jƒ|jdƒr±x'|j dƒj!ƒD]7} tjj"tjj#|j| ƒƒ} |j| ƒqsWq |jd ƒr |jd ƒrá|j d ƒ} ng} x�g|j d ƒj!ƒD]} | r| | kr| ^qD]^} tjj#|j| ƒ} |j| ƒ|j| d ƒ|j| d ƒ|j| d ƒq"Wq nƒ|r¼t$j%dj|jƒt&ƒ|j|ƒnQ|jjdƒr2|j|jƒtjj'|jƒd}tjj#tjj(|jƒdƒ}|j)|d|ƒnÛ|rw|jjdƒrwxÀt*j+j,|ƒD]} |j| ƒq]Wn–|r÷t-|dƒ�%}tjj.|j/ƒj0ƒƒ}WdQX|j|ƒtjj#tjj(|ƒdƒ}|j)||jƒntj1d||jƒ|jdƒr¨|j2dƒr¨xz|j3dƒD]f}t4|ƒrVt5}nt6}|jtjj#||ƒƒt7r;|jtjj#||ƒdƒq;q;Wn|jdƒrÖt8j9rÉi}n idd6}t:j;|�}|j<t=|j>dƒƒƒ|j?dƒrÖxÀ|j@dƒD]¬\}}t4|ƒrAt5}nt6}|jtjj#||ƒƒt7r |jtjj#||ƒdƒ|jtjj#||ƒdƒ|jtjj#||ƒdƒq q WqÖn|jA|ƒ||_BdS( s¥ Uninstall the distribution currently satisfying this requirement. Prompts before removing or modifying files unless ``auto_confirm`` is True. Refuses to delete or modify files outside of ``sys.prefix`` - thus uninstallation within a virtual environment can only modify that virtual environment, even if the virtualenv is linked to global site-packages. s.Cannot uninstall requirement %s, not installeds1Not uninstalling %s at %s, outside environment %sNs<Not uninstalling %s at %s, as it is in the standard library.s {0}.egg-infoR8s .egg-infosinstalled-files.txts top_level.txtsnamespace_packages.txts.pys.pycs.pyosÖUninstalling a distutils installed project ({0}) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.s.eggiseasy-install.pths./s .dist-infotrs)Not sure how to uninstall: %s - Check: %stscriptss.batsentry_points.txtRCt delimiterstconsole_scriptss.exes .exe.manifests -script.py(RC(Ctcheck_if_existsRRtRYRZR)R�R*RƒtinfoR×R»tprefixRpRaRR0R"tformatRt to_filenamet project_nameR¾RHR8R©tgetattrt _providerR6RãtaddRÍRÎt splitlinesRRªtwarningstwarnR,R}tdirnametadd_pthtpipR�tuninstallation_pathstopentnormcasetreadlineR~R™tmetadata_isdirtmetadata_listdirR RRRRR¸R tSafeConfigParsertreadfpR%tget_metadata_linest has_sectiontitemsRßR_(Rht auto_confirmtdistt dist_pathtpaths_to_removetdevelop_egg_linktdevelop_egg_link_egg_infotegg_info_existstdistutils_egg_infotinstalled_fileR8t namespacesRŒt top_level_pkgteasy_install_eggteasy_install_pthtfht link_pointerRÆtbin_dirRdtconfigRttvalue((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt uninstallRsÎ         "   $     *     ' cC@s0|jr|jjƒntjd|jƒdS(Ns'Can't rollback %s, nothing uninstalled.(R_trollbackRƒterrorRt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytrollback_uninstallõs cC@s<|jr|jjƒn|js8tjd|jƒndS(Ns%Can't commit %s, nothing uninstalled.(R_tcommitRaRƒR*Rt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytcommit_uninstallýs   cC@s’t}d|j|jƒdf}tjj||ƒ}tjj|ƒrtdt|ƒdƒ}|dkrxt }q|dkrªt j dt|ƒƒtj |ƒq|dkrôt |ƒ}t j d t|ƒt|ƒƒtj||ƒq|dkrtjd ƒqn|rŽtj|dtjd tƒ}tjjtjj|jƒƒ}xtj|ƒD]ÿ\} } } d | kr“| j d ƒnxl| D]d} tjj| | ƒ} |j| |ƒ} tj|jd | d ƒ}d|_|j|dƒqšWxb| D]Z}|tkr!q ntjj| |ƒ}|j||ƒ} |j||jd | ƒq WqhW|jƒt j dt|ƒƒndS(Ns %s-%s.zipR‰s8The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)bort titwtbtas Deleting %ssBacking up %s to %siÿÿÿÿt allowZip64s pip-egg-infot/iíiR³sSaved %s(R.R/R0R1ií(!RpRtRÅRHR8RªR©RRR`RƒR„RßRR­R®R»texittzipfiletZipFilet ZIP_DEFLATEDR R€RµRÝt_clean_zip_nametZipInfot external_attrtwritestrRtwriteRíRý(RhR«tcreate_archivet archive_namet archive_pathtresponset dest_filetzipRêtdirpathRÞRæRRttzipdirRˆ((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytarchivesV         !     # cC@s0|t|ƒd}|jtjjdƒ}|S(NiR3(R treplaceRHR8RI(RhRtRþ((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR85sc@s@|sd}nˆjdk r8t‡fd†|DƒƒStSdS(NR³c3@s(|]}ˆjji|d6ƒVqdS(R?N(RVtevaluate(R>R?(Rh(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys Ds(R³(RVR6RJRp(Rhtextras_requested((Rhs7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt match_markers=s   c@s"|jr#|j||d|ƒdS|jr†tjj|jƒ}tjj||jƒ|j |jdˆd|d|ƒt |_ dS||j j dgƒ7}||j j dgƒ7}|jr×t|ƒdg}ntjddƒ}tjj|d ƒ}zð|j||ˆ|ƒ} d |jf} t| ƒ�:} tƒ�(t| |d |jd td | ƒWdQXWdQXtjj|ƒs—tjd|ƒdSt |_ |jr­dS‡fd†} t|ƒ�]} xS| D]7}tjj |ƒ}|j!dƒrÒ| |ƒ}PqÒqÒWtj"d|ƒdSWdQXg}t|ƒ�k} xa| D]Y}|j#ƒ}tjj$|ƒrz|tjj%7}n|j&tjj'| |ƒ|ƒƒqCWWdQXtjj|dƒ}t|dƒ�!} | j(dj|ƒdƒWdQXWdtjj|ƒrtj)|ƒnt*|ƒXdS(NRþRçtstrip_file_prefixtglobal_optionstinstall_optionss --no-user-cfgs-recordspip-sinstall-record.txtsRunning setup.py install for %sR¿RÀtspinnersRecord file %s not foundc@s4ˆdkstjj|ƒ r#|Stˆ|ƒSdS(N(R6RHR8tisabsR(R8(Rç(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt prepend_root~ss .egg-infos;Could not find .egg-info directory in install record for %ssinstalled-files.txtR/s (+RQtinstall_editableR‡R R�t wheel_versionRPtcheck_compatibilityRtR2RpR^RdtgetRgRàR¦R§RHR8Rªtget_install_argsR/R-R#RµR`R©RƒR™RUR RRãR„R~R�RItappendtrelpathR<RßR(RhRLRKRçRþRJR‰t temp_locationtrecord_filenamet install_argstmsgRMRORëtlinet directoryRÊt new_linesRˆtinst_files_path((Rçs7/usr/lib/python2.7/site-packages/pip/req/req_install.pytinstallIs~                $cC@s+|jdkr$|j|ƒ|_n|jS(sAEnsure that a source_dir is set. This will create a temporary build dir if the name of the requirement isn't known yet. :param parent_dir: The ideal pip parent_dir for the source_dir. Generally src_dir for editables and build_dir for sdists. :return: self.source_dir N(RPR6R¬(Rht parent_dir((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytensure_has_source_dir¥s cC@stjdg}|jdƒ|jt|jƒ|t|ƒdd|g7}|jsf|dg7}n|dk r…|d|g7}n|dk r¤|d|g7}n|jr½|dg7}n |d g7}t ƒrd t j ƒ}|d t j jtjd d ||jƒg7}n|S(Ns-us-cR_s--records#--single-version-externally-manageds--roots--prefixs --compiles --no-compileRÓs--install-headerstincludetsite(R»RÃRUR.R½RàRUR6ReRRtget_python_versionRHR8RªRþRt(RhRKRXRçRþRYt py_ver_str((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRT³s(        cC@s”|jrPtjjtjj|jtƒƒrPtjd|jƒt|jƒnd|_|j r‡tjj|j ƒr‡t|j ƒnd|_ dS(sVRemove the source files from this requirement, if they are marked for deletionsRemoving source in %sN( RPRHR8R©RªRRƒR™RR6R[(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytremove_temporary_sourceÏs c C@sÄtjd|jƒ|jr2t|ƒdg}n|r]dj|ƒg}t|ƒ|}ntƒ�Ottj dt |j gt|ƒddgt|ƒd|j dt ƒWdQXt|_dS( NsRunning setup.py develop for %ss --no-user-cfgs --prefix={0}s-ctdevelops --no-depsR¿RÀ(RƒRýRtRgRàRÿR-R#R»RÃR.R½RµR`RpR^(RhRLRKRþt prefix_param((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRPÛs  *   cC@s|jdkrtSyett|jƒƒ}d|_tjt|ƒƒ|_|j rw|jrw|j|_ d|_t SWnžtj k r�tStj k rtj|jjƒ}|jr t|ƒrÕ||_ qtƒrt|ƒrtd|j|jfƒ‚qq||_ nXt S(sªFind an installed distribution that satisfies or conflicts with this requirement, and set self.satisfied_by or self.conflicts_with appropriately. sVWill not install to the user site because it will lack sys.path precedence to %s in %sN(RER6R`R R�RWRtget_distributionRYRQRZRptDistributionNotFoundtVersionConflictRtRbR RR!RRR�(Rht no_markert existing_dist((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRü÷s2         cC@s|jo|jjS(N(RSR‡(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR‡ scC@sPt|j|j|d|jd|jd|d|d|jd|jd|ƒdS(NtuserthomeRçRþReRgRJ(R2RtRERbRcReRg(RhtwheeldirRçRþRJ((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR2$s    cC@sƒ|jdƒjdƒ}tjj|ƒ}tj||ƒ}tjjtjj|ƒƒd}tj tjj|ƒd|d|ƒS(sAReturn a pkg_resources.Distribution built from self.egg_info_pathR³R3iRtmetadata( RÏtrstripRHR8RRt PathMetadatatsplitexttbasenamet Distribution(RhR¾tbase_dirRqt dist_name((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytget_dist0s"cC@st|jjdiƒƒS(s©Return whether any known-good hashes are specified as options. These activate --require-hashes mode; hashes specified as part of a URL do not. thashes(tboolRdRS(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pythas_hash_options;scC@sn|jjdiƒjƒ}|r*|jn|j}|rd|jrd|j|jgƒj|jƒnt |ƒS(s§Return a hash-comparer that considers my option- and URL-based hashes to be known-good. Hashes in URLs--ones embedded in the requirements file, not ones downloaded from an index server--are almost peers with ones from flags. They satisfy --require-hashes (whether it was implicitly or explicitly activated) but do not activate it. md5 and sha224 are not allowed in flags, which should nudge people toward good algos. We always OR all hashes together, even ones from URLs. :param trust_internet: Whether to trust URL-based (#md5=...) hashes downloaded from the internet, as by populate_link() Rz( RdRStcopyRSRTthasht setdefaultt hash_nameRUR+(Rhttrust_internett good_hashesRS((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRzEs "N((0R•t __module__R6R`RpRkt classmethodRxRŽR“R–RžtpropertyRŸR¤R‘R¬R±RtRµR½RÌRÑRÏRÅR4tcompilet_requirements_section_reRîRïR÷R(R+R-RER8RIR_RaRTRfRPRüR‡R2RyR|Rz(((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRBIs^  ;  M      : 6    £   0  \    )  cC@s.tjd|ƒ}|r*|jdƒ}n|S(s2 Strip req postfix ( -dev, 0.2, etc ) s^(.*?)(?:-dev|-\d.*)$i(R4R†R7(RER5((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt_strip_postfix[sc C@sPddlm}|}d}tjd|ƒ}|rU|jdƒ}|jdƒ}n|}tjj|ƒr°tjj tjj |dƒƒs¡t d|ƒ‚nt |ƒ}n|j ƒjdƒr ||ƒj}|rú||td |j ƒƒjfS||dfSnx;tD]3}|j ƒjd |ƒrd ||f}PqqWd |krŽ|r{tjd tƒ|d |}qŽt d|ƒ‚n|jd dƒdj ƒ} tj| ƒsd|dj gtjD]} | jd^qЃd} t | ƒ‚n||ƒj}|s$t dƒ‚n|s=t d|ƒ‚nt|ƒ|dfS(sParses an editable requirement into: - a requirement name - an URL - extras - editable options Accepted requirements: svn+http://blahblah@rev#egg=Foobar[baz]&subdirectory=version_subdir .[some_extra] i(Rls^(.+)(\[[^\]]+\])$iissetup.pys;Directory %r is not installable. File 'setup.py' not found.sfile:R|s%s:s%s+%sRðsD--default-vcs has been deprecated and will be removed in the future.sb%s should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+sFor --editable=%s only s, s+URLs is currently supporteds@Could not detect requirement name, please specify one with #egg=s@--editable=%s is not the right format; it must have #egg=PackageN(RmRlR6R4R5R7RHR8R�R©RªRRR¨RoRŠR R:R1RRR,R}RñtbackendsRtRˆ( RrRsRlRuR:R9t url_no_extrast package_nametversion_controlRôRõt error_message((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRngs` !    1  (et __future__RtloggingRHR4R­R»R¦RLRR5t distutilsRtdistutils.utilRt email.parserRt pip._vendorRRtpip._vendor.packagingRtpip._vendor.packaging.markersRt"pip._vendor.packaging.requirementsRR tpip._vendor.packaging.utilsR tpip._vendor.packaging.versionR R RÄtpip._vendor.six.movesR t pip.wheelR t pip.compatRRRt pip.downloadRRRRtpip.exceptionsRRt pip.locationsRRRRt pip.utilsRRRRRR R!R"R#R$R%R&R'R(R)R*tpip.utils.hashesR+tpip.utils.deprecationR,tpip.utils.loggingR-tpip.utils.setuptools_buildR.t pip.utils.uiR/tpip.req.req_uninstallR0tpip.vcsR1R2R3t getLoggerR•Rƒt Specifiert _operatorstkeysRKR<RAtobjectRBRˆR6Rn(((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytsX          ""j ÿÿÿÿ