7Re)Gc@s\ddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl mZmZmZmZmZddlmZmZmZmZmZmZmZddlmZddlmZddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0dd l1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9dd l:m;Z;dd l m<Z<dd l=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHddlIZJdd lImKZKmLZLmMZMddlNmOZOmPZPddZQGdddeRZSGdddeRZTGdddeRZUddZVejWdejXZYeZeZeZeZddZ[ddZ\ddZ]d d!Z^eZd"d#Z_Gd$d%d%eRZ`Gd&d'd'eRZaGd(d)d)eRZbdS(*i(u FeedParserN(u change_root(ubin_pyurunning_under_virtualenvuPIP_DELETE_MARKER_FILENAMEuwrite_delete_marker_fileubin_user(uInstallationErroruUninstallationErroruUnsupportedWheeluBestVersionAlreadyInstalleduInvalidWheelFilenameuDistributionNotFounduPreviousBuildDirError(uvcs(ulogger(u display_pathurmtreeuaskuask_path_existsu backup_diruis_installable_diruis_localu dist_is_localudist_in_usersiteudist_in_site_packagesurenamesunormalize_pathu egg_link_pathumake_path_relativeucall_subprocessu is_prereleaseunormalize_name(uurlparseuurllibu uses_pycacheu ConfigParseru string_typesu HTTPErroruget_python_versionub(uLink(u build_prefix( u PipSessionuget_file_contentuis_urlu url_to_pathu path_to_urluis_archive_fileuunpack_vcs_linku is_vcs_urlu is_file_urluunpack_file_urluunpack_http_url(umove_wheel_filesuWheelu wheel_ext(u pkg_resourcesusixcCst|d}|j}WdQXdtjddg}x:|D]2}y|j|}Wntk rswCYnXPqCWt|tkst |S(uQReturn the contents of *filename*. Try to decode the file contents with utf-8, the preffered system encoding (e.g., cp1252 on some Windows machines) and latin1, in that order. Decoding a byte string with latin1 will never raise an error. In the worst case, the returned string will contain some garbage characters. urbNuutf-8ulatin1F( uopenureadulocaleugetpreferredencodinguFalseudecodeuUnicodeDecodeErrorutypeubytesuAssertionError(ufilenameufpudatau encodingsuenc((u /tmp/pip-zej_zi-build/pip/req.pyuread_text_file's   uread_text_filec Bso|EeZdZdMdNdMdNdOdMdMdNdOdd ZedMdMddZedMdMddZ ddZ d d Z dOd d Z d dZ eddZeddZeddZdNddZdZddZddZddZddZed d!Zejd"Zfd#d$Zed%d&Zed'd(Zd)d*ZdOd+d,Z dNd-d.Z!d/d0Z"d1d2Z#d3d4Z$d5d6Z%fdMdMd7d8Z&d9d:Z'fd;d<Z(d=d>Z)d?d@Z*edAdBZ+edCdDZ,dEdFZ-dGdHZ.dMdMdIdJZ/edKdLZ0dMS(PuInstallRequirementc CsLf|_t|tr9tjj|}|j|_n||_||_||_||_ | dkrri} n| |_ ||_ ||_ d|_d|_d|_d|_d|_||_d|_d|_d|_d|_| |_| |_|r d|_n=|jdk r?tdd|jjD|_n d|_dS(NcSs0g|]&}t|do)|ddkqS(iiu!=(u is_prerelease(u.0ux((u /tmp/pip-zej_zi-build/pip/req.pyu ls u/InstallRequirement.__init__..FT(uextrasu isinstanceu string_typesu pkg_resourcesu Requirementuparseurequ comes_fromu source_dirueditableuNoneueditable_optionsuurluas_eggu_egg_info_pathu satisfied_byuconflicts_withu_temp_build_diru _is_bundleuupdateuinstall_succeededu uninstalleduFalseu use_user_siteu target_diru from_bundleu pycompileuTrueu prereleasesuanyuspecs( uselfurequ comes_fromu source_dirueditableuurluas_egguupdateu prereleasesueditable_optionsu from_bundleu pycompile((u /tmp/pip-zej_zi-build/pip/req.pyu__init__As<                       %uInstallRequirement.__init__c Cst||\}}}|jdr6t|}nd}|||d|ddd|d|dd}|dk r||_n|S(Nufile:u source_dirueditableuurlueditable_optionsu prereleasesT(uparse_editableu startswithu url_to_pathuNoneuTrueuextras( uclsu editable_requ comes_fromu default_vcsunameuurluextras_overrideu source_dirures((u /tmp/pip-zej_zi-build/pip/req.pyu from_editableps   u InstallRequirement.from_editablec Csd }|j}d }tjjtjj|}d }t|rWt|}ntjj|rtjj |ks|j drt |st d|ntt |}nFt|rtjj|stjd|ntt |}n|r|d kr|j}|j}|jdkrstjd|rst tjjtjj|j}n|jtkrt|j}|jstd|jqqn|}|||d|d|S( uCreates an InstallRequirement from a name, which might be a requirement, directory containing 'setup.py', filename, or URL. u.u;Directory %r is not installable. File 'setup.py' not found.uARequirement %r looks like a filename, but the file does not existufileu\.\./u-%s is not a supported wheel on this platform.uurlu prereleasesN(uNoneustripuosupathunormpathuabspathuis_urluLinkuisdirusepu startswithuis_installable_diruInstallationErroru path_to_urluis_archive_fileuisfileuloggeruwarnuurl_without_fragmentu egg_fragmentuschemeureusearchuextu wheel_extuWheelufilenameu supporteduUnsupportedWheel( uclsunameu comes_fromu prereleasesuurlurequpathulinkuwheel((u /tmp/pip-zej_zi-build/pip/req.pyu from_lines4  3    !* uInstallRequirement.from_linecCs|jr8t|j}|jrA|d|j7}qAn |j}|jdk rm|dt|jj7}n|jrt|jt r|j}n|jj }|r|d|7}qn|S(Nu from %su in %su (from %s)( urequstruurlu satisfied_byuNoneu display_pathulocationu comes_fromu isinstanceu string_typesu from_path(uselfusu comes_from((u /tmp/pip-zej_zi-build/pip/req.pyu__str__s     uInstallRequirement.__str__cCsv|jdkrdSt|j}|jrrt|jtrI|j}n|jj}|rr|d|7}qrn|S(Nu->(urequNoneustru comes_fromu isinstanceu string_typesu from_path(uselfusu comes_from((u /tmp/pip-zej_zi-build/pip/req.pyu from_paths  uInstallRequirement.from_pathcCs|jdk r|jS|jdkrJtjdd|_||_|jS|jre|jj}n |j}t j j |st |nt j j ||S(Nu-buildupip-(u_temp_build_diruNoneurequtempfileumkdtempu_ideal_build_dirueditableunameuloweruosupathuexistsu_make_build_dirujoin(uselfu build_diruunpackuname((u /tmp/pip-zej_zi-build/pip/req.pyubuild_locations    u!InstallRequirement.build_locationcCs8|jdk rdS|jdk s(t|js7t|j}|j}|`|jrj|jj}n |j}t j j ||}t j j |st jd|t|nt j j |rtdt|nt jd|t|t|ftj||||_||_d|_dS(ukIf the build location was a temporary directory, this will move it to a new more permanent locationNuCreating directory %su<A package already exists in %s; please remove it to continueu,Moving package %s from %s to new location %s(u source_diruNoneurequAssertionErroru_temp_build_diru_ideal_build_dirueditableunameuloweruosupathujoinuexistsuloggerudebugu_make_build_diruInstallationErroru display_pathushutilumoveu_egg_info_path(uselfu old_locationu new_build_dirunameu new_location((u /tmp/pip-zej_zi-build/pip/req.pyucorrect_build_locations0        u)InstallRequirement.correct_build_locationcCs|jdkrdS|jjS(N(urequNoneu project_name(uself((u /tmp/pip-zej_zi-build/pip/req.pyunamesuInstallRequirement.namecCs&|jdkrdStj|jjS(N(urequNoneuurllibuquoteu unsafe_name(uself((u /tmp/pip-zej_zi-build/pip/req.pyuurl_namesuInstallRequirement.url_namec Csyddl}Wntk r0tdYnXd}|jrtd|jkrttjj|j|jd|}ntjj|j|}tj rt |tj r|j t j}n|S(NiuBsetuptools must be installed to install from a source distributionusetup.pyu subdirectory(u setuptoolsu ImportErroruInstallationErrorueditable_optionsuosupathujoinu source_dirusixuPY2u isinstanceu text_typeuencodeusysugetfilesystemencoding(uselfu setuptoolsu setup_fileusetup_py((u /tmp/pip-zej_zi-build/pip/req.pyusetup_pys   uInstallRequirement.setup_pycCs|jst|jr8tjd|j|jfntjd|j|jftjd7_z>|jdkrtj j tj j |jd rt tj j |jdn|j }|jdt|j}|jdt|j}tjd |d g}|js|r&g}nFtj j |jd }tj j|s`tj|nd d g}t||d |jd|jdddtjddWdtjd8_X|jstjjd|j|_|jndS(Nu2Running setup.py (path:%s) egg_info for package %su7Running setup.py (path:%s) egg_info for package from %siu distributeu setuptoolsudistribute.egg-infou __SETUP_PY__u __PKG_NAME__u-cuegg_infou pip-egg-infou --egg-baseucwdu filter_stdoutu show_stdoutu command_levelu command_descupython setup.py egg_infou%(Name)s==%(Version)sF(u source_diruAssertionErrorunameuloggerunotifyusetup_pyuurluindentuosupathuisdirujoinurmtreeu _run_setup_pyureplaceureprusysu executableueditableuexistsumakedirsucall_subprocessu_filter_installuFalseu VERBOSE_DEBUGurequ pkg_resourcesu Requirementuparseupkg_infoucorrect_build_location(uselfuforce_root_egg_infouscriptu egg_info_cmduegg_base_optionu egg_info_dir((u /tmp/pip-zej_zi-build/pip/req.pyu run_egg_info!s8   4        uInstallRequirement.run_egg_infou} __file__ = __SETUP_PY__ from setuptools.command import egg_info import pkg_resources import os import tokenize def replacement_run(self): self.mkpath(self.egg_info) installer = self.distribution.fetch_build_egg for ep in pkg_resources.iter_entry_points('egg_info.writers'): # require=False is the change we're making: writer = ep.load(require=False) if writer: writer(self, ep.name, os.path.join(self.egg_info,ep.name)) self.find_sources() egg_info.egg_info.run = replacement_run exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec')) cCsy|jdk r5|jj|s%dS|jj|S|jsDt|j|}tjj |sidSt |}|S(N( u satisfied_byuNoneu has_metadatau get_metadatau source_diruAssertionErroru egg_info_pathuosupathuexistsuread_text_file(uselfufilenameudata((u /tmp/pip-zej_zi-build/pip/req.pyu egg_info_databs u InstallRequirement.egg_info_datac s|jdkr|jr$|j}ntjj|jd}tj|}|jrg}x tj|D]\}}x-t j D]"}||kr|j |qqWxt |D]}tjj tjj|dds tjj tjj|ddr|j |n|dks2|dkr|j |qqW|jfdd |DqjWd d |D}n|std ||fn|std ||ft|d kr|jd ddntjj||d|_ntjj|j|S(Nu pip-egg-infoubinupythonuScriptsu Python.exeutestutestscs%g|]}tjj|qS((uosupathujoin(u.0udir(uroot(u /tmp/pip-zej_zi-build/pip/req.pyu s u4InstallRequirement.egg_info_path..cSs%g|]}|jdr|qS(u .egg-info(uendswith(u.0uf((u /tmp/pip-zej_zi-build/pip/req.pyu s u$No files/directories in %s (from %s)iukeycSs8|jtjjtjjr3|jtjjp6dS(Ni(ucountuosupathusepualtsep(ux((u /tmp/pip-zej_zi-build/pip/req.pyus u2InstallRequirement.egg_info_path..i(u_egg_info_pathuNoneueditableu source_diruosupathujoinulistdiruwalkuvcsudirnamesuremoveulistuexistsuextenduInstallationErroruAssertionErrorulenusort(uselfufilenameubaseu filenamesudirsufilesudir((urootu /tmp/pip-zej_zi-build/pip/req.pyu egg_info_pathns6    ''u InstallRequirement.egg_info_pathcCso|j|}|sgSg}xI|jD];}|j}| s,|jdrZq,n|j|q,W|S(Nu#(u egg_info_datau splitlinesustripu startswithuappend(uselfufilenameudatauresultuline((u /tmp/pip-zej_zi-build/pip/req.pyuegg_info_liness u!InstallRequirement.egg_info_linescCs^t}|jd}|sAtjdt|jdn|j|pPd|jS(NuPKG-INFOuNo PKG-INFO file found in %su(u FeedParseru egg_info_datauloggeruwarnu display_pathu egg_info_pathufeeduclose(uselfupudata((u /tmp/pip-zej_zi-build/pip/req.pyupkg_infos  #uInstallRequirement.pkg_infocCs |jdS(Nudependency_links.txt(uegg_info_lines(uself((u /tmp/pip-zej_zi-build/pip/req.pyudependency_linkssu#InstallRequirement.dependency_linksu \[(.*?)\]ccsd}xx|jdD]g}|jj|j}|rO|jd}qn|rx||krxtjd|qn|VqWdS(Nu requires.txtiuskipping extra %s(uNoneuegg_info_linesu_requirements_section_reumatchulowerugroupuloggerudebug(uselfuextrasuin_extraulineumatch((u /tmp/pip-zej_zi-build/pip/req.pyu requirementssuInstallRequirement.requirementsccs5x.|jjD] \}}|dkr |Vq q WdS(Nu==(urequspecs(uselfu qualifieruversion((u /tmp/pip-zej_zi-build/pip/req.pyuabsolute_versionss u$InstallRequirement.absolute_versionscCs|jdS(Nuversion(upkg_info(uself((u /tmp/pip-zej_zi-build/pip/req.pyuinstalled_versionsu$InstallRequirement.installed_versioncCsk|jst|j}||jkrDtjd||jfn#tjdt|j||fdS(Nu'Requested %s, but installing version %su;Source in %s has version %s, which satisfies requirement %s(u source_diruAssertionErroruinstalled_versionurequloggeruwarnudebugu display_path(uselfuversion((u /tmp/pip-zej_zi-build/pip/req.pyuassert_source_matches_versions   u0InstallRequirement.assert_source_matches_versioncCs|js!tjd|jdS|js0t|js?t|jjdrUdSd|jkswtd|j|jsdS|jjdd\}}t j |}|r||j}|r|j |jq|j |jndstd|j|fdS(Nu>Cannot update repository at %s; repository location is unknownufile:u+u bad url: %riiu+Unexpected version control type (in %s): %s( uurluloggeruinfou source_dirueditableuAssertionErroru startswithuupdateusplituvcsu get_backenduobtainuexport(uselfuobtainuvc_typeuurlubackendu vcs_backend((u /tmp/pip-zej_zi-build/pip/req.pyuupdate_editables( "  u"InstallRequirement.update_editablecsd|js%td|jfn|jp4|j}t|}tjj|j |j d}tjj|j dj|j j dddd}|j dt jd}|j d }t|}tjj|} tjj|} tjj|} | s| rR| r)|} n|} |j| |jd rx|jd jD]4} tjjtjj| | }|j|qaWq|jd r|jd r|jd ngxzfd d|jd jDD]M}tjj|j |}|j||j|d|j|dqWqn?|j j|r|j|j tjjtjj|j d}|j|d|n|r^t|d}tjj|jj}|j||j kstd||j|j f|j|tjjtjj|d}|j||j n3| rx*tj j!|D]}|j|qwWn|jdr5|j"dr5x|j#dD]o}t$|rt%}nt&}|jtjj||t'j(dkr|jtjj||dqqWn|jdrJt)j*}|j+t,|j-d|j.drJx|j/dD]\}}t$|rt%}nt&}|jtjj||t'j(dkr|jtjj||d|jtjj||d|jtjj||dqqWqJn|j0|||_1dS(u 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. u.Cannot uninstall requirement %s, not installedu .egg-infou-Niu .dist-infou-py%suu.egguinstalled-files.txtu top_level.txtunamespace_packages.txtcs(g|]}|r|kr|qS(((u.0up(u namespaces(u /tmp/pip-zej_zi-build/pip/req.pyu s u0InstallRequirement.uninstall..u.pyu.pycueasy-install.pthu./uru;Egg-link %s does not match installed location of %s (at %s)uscriptsuwin32u.batuentry_points.txtuconsole_scriptsu.exeu .exe.manifestu -script.py(2ucheck_if_existsuUninstallationErrorunameu satisfied_byuconflicts_withuUninstallPathSetuosupathujoinulocationuegg_nameusplitureplaceu pkg_resourcesuPY_MAJORu egg_link_pathuexistsuaddu has_metadatau get_metadatau splitlinesunormpathuendswithudirnameuadd_pthuopenunormcaseureadlineustripucloseuAssertionErrorupipuwheeluuninstallation_pathsumetadata_isdirumetadata_listdirudist_in_usersiteubin_userubin_pyusysuplatformu ConfigParseruSafeConfigParserureadfpuFakeFileuget_metadata_linesu has_sectionuitemsuremoveu uninstalled(uselfu auto_confirmudistupaths_to_removeupip_egg_info_pathudist_info_pathudebian_egg_info_pathueasy_install_eggudevelop_egg_linkupip_egg_info_existsudebian_egg_info_existsudist_info_existsu egg_info_pathuinstalled_fileupathu top_level_pkgueasy_install_pthufhu link_pointeruscriptubin_diruconfigunameuvalue((u namespacesu /tmp/pip-zej_zi-build/pip/req.pyu uninstalls  (    !   .    *     - uInstallRequirement.uninstallcCs4|jr|jjntjd|jfdS(Nu'Can't rollback %s, nothing uninstalled.(u uninstalledurollbackuloggeruerroru project_name(uself((u /tmp/pip-zej_zi-build/pip/req.pyurollback_uninstallYs  u%InstallRequirement.rollback_uninstallcCs4|jr|jjntjd|jfdS(Nu%Can't commit %s, nothing uninstalled.(u uninstalleducommituloggeruerroru project_name(uself((u /tmp/pip-zej_zi-build/pip/req.pyucommit_uninstall`s  u#InstallRequirement.commit_uninstallcCs|jstd}d|j|jf}tjj||}tjj|rt dt |d}|dkrd}q|dkrt j dt |tj|q|dkrt|}t j dt |t |ftj||qn|rtj|dtj}tjjtjj|j}xtj|D]\} } } d| kr~| jdnxl| D]d} tjj| | } |j| |} tj|jd | d }d|_|j|d qWxb| D]Z}|tkr qntjj| |}|j||} |j||jd | qWqSW|jt jd 8_t j dt |ndS(Nu %s-%s.zipu/The file %s exists. (i)gnore, (w)ipe, (b)ackup uiuwubu Deleting %suBacking up %s to %su pip-egg-infou/iiuiuSaved %sT(uiuwubFi(!u source_diruAssertionErroruTrueunameuinstalled_versionuosupathujoinuexistsuask_path_existsu display_pathuFalseuloggeruwarnuremoveu backup_dirushutilumoveuzipfileuZipFileu ZIP_DEFLATEDunormcaseuabspathuwalku_clean_zip_nameuZipInfou external_attruwritestruPIP_DELETE_MARKER_FILENAMEuwriteucloseuindentunotify(uselfu build_dirucreate_archiveu archive_nameu archive_pathuresponseu dest_fileuzipudirudirpathudirnamesu filenamesudirnameunameuzipdirufilename((u /tmp/pip-zej_zi-build/pip/req.pyuarchivegsN      !     # uInstallRequirement.archivecCse|j|tjjs/td||f|t|dd}|jtjjd}|S(Nu$name %r doesn't start with prefix %riu/(u startswithuosupathusepuAssertionErrorulenureplace(uselfunameuprefix((u /tmp/pip-zej_zi-build/pip/req.pyu_clean_zip_names u"InstallRequirement._clean_zip_namecs|jr|j||dS|jrztjj|j}tjj||j|j |jdd|d|_ dSt j dd}tjj|d}ztjg}|jd|jd|j|t|dd |g7}|js|d g7}ndk r&|d g7}n|jr?|d g7}n |d g7}tr|dtjjtjdddtg7}ntjd|jtjd7_z*t||d|jd|j dd Wdtjd8_Xtjj"|stjd|dSd|_ |jr$dSfdd} t#|} xN| D]1} | j$} | j%drI| | } PqIqIWtj&d|dS| j'g} t#|} x[| D]S} | j$}tjj(|r|tjj)7}n| jt*| || qW| j't#tjj| dd} | j+dj| d| j'Wdtjj"|rtj,|ntj-|XdS(!Nurootustrip_file_prefixu-recordupip-uinstall-record.txtu-cuimport setuptools, tokenize;__file__=%r;exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))uinstallu--recordu#--single-version-externally-managedu--rootu --compileu --no-compileu--install-headersuincludeusiteupythonuRunning setup.py install for %siucwdu filter_stdoutu show_stdoutuRecord file %s not foundcs4dkstjj| r#|St|SdS(N(uNoneuosupathuisabsu change_root(upath(uroot(u /tmp/pip-zej_zi-build/pip/req.pyu prepend_rootsu0InstallRequirement.install..prepend_rootu .egg-infou;Could not find .egg-info directory in install record for %suinstalled-files.txtuwu TF(.ueditableuinstall_editableuis_wheelupipuwheelu wheel_versionu source_dirucheck_compatibilityunameumove_wheel_filesuTrueuinstall_succeededutempfileumkdtempuosupathujoinusysu executableuappendusetup_pyulistuas_egguNoneu pycompileurunning_under_virtualenvuprefixuget_python_versionuloggerunotifyuindentucall_subprocessu_filter_installuFalseuexistsuopenustripuendswithuwarnucloseuisdirusepumake_path_relativeuwriteuremoveurmdir(uselfuinstall_optionsuglobal_optionsurootustrip_file_prefixuversionu temp_locationurecord_filenameu install_argsu prepend_rootufulineu egg_info_diru new_linesufilename((urootu /tmp/pip-zej_zi-build/pip/req.pyuinstalls                         uInstallRequirement.installcCs|jstjj|jrWtjd|j|jrKt|jnd|_n|j rtjj|j rt|j nd|_ dS(uVRemove the source files from this requirement, if they are marked for deletionuRemoving source in %sN( u is_bundleuosupathuexistsudelete_marker_filenameuloggeruinfou source_dirurmtreeuNoneu_temp_build_dir(uself((u /tmp/pip-zej_zi-build/pip/req.pyuremove_temporary_sources  u*InstallRequirement.remove_temporary_sourcecCstjd|jtjd7_zWttjdd|jgt|ddgt|d|j d|j d d Wdtjd8_Xd |_ dS( NuRunning setup.py develop for %siu-cuimport setuptools, tokenize; __file__=%r; exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))udevelopu --no-depsucwdu filter_stdoutu show_stdoutFT(uloggerunotifyunameuindentucall_subprocessusysu executableusetup_pyulistu source_diru_filter_installuFalseuTrueuinstall_succeeded(uselfuinstall_optionsuglobal_options((u /tmp/pip-zej_zi-build/pip/req.pyuinstall_editables7 u#InstallRequirement.install_editablecCsatj}xKddddddddgD]+}tj||jr(tj}Pq(q(W||fS( Nu ^running .*u ^writing .*u ^creating .*u^[Cc]opying .*u ^reading .*u4^removing .*\.egg-info' \(and everything under it\)$u^byte-compiling u7^warning: manifest_maker: standard file '-c' not found$(uloggeruNOTIFYureusearchustripuINFO(uselfulineuleveluregex((u /tmp/pip-zej_zi-build/pip/req.pyu_filter_installs   u"InstallRequirement._filter_installc Cs|jdkrdSyJ|jjdkrG|jrG|jjdkrGdStj|j|_Wntj k rxdSYntj k rtj|jj}|j rt |r||_qt rt|rtd|j|jfqn ||_YnXdS(uFind an installed distribution that satisfies or conflicts with this requirement, and set self.satisfied_by or self.conflicts_with appropriately.u setuptoolsu distributeuVWill not install to the user site because it will lack sys.path precedence to %s in %sNFT(urequNoneuFalseu project_nameuconflicts_withuTrueu pkg_resourcesuget_distributionu satisfied_byuDistributionNotFounduVersionConflictu use_user_siteudist_in_usersiteurunning_under_virtualenvudist_in_site_packagesuInstallationErrorulocation(uselfu existing_dist((u /tmp/pip-zej_zi-build/pip/req.pyucheck_if_existss(    u"InstallRequirement.check_if_existscCs|jod|jkS(Nu.whl(uurl(uself((u /tmp/pip-zej_zi-build/pip/req.pyuis_wheel=suInstallRequirement.is_wheelcCsu|jdk r|jS|j}|s)dStjjtjj|dphtjjtjj|d|_|jS(Nupip-manifest.txtupyinstall-manifest.txtF(u _is_bundleuNoneu_temp_build_diruFalseuosupathuexistsujoin(uselfubase((u /tmp/pip-zej_zi-build/pip/req.pyu is_bundleAs !$uInstallRequirement.is_bundlec csGx|jD]}tjj|}xtjD]}d}}tjj||j}tjj |r,|j }t |}|j } |j |j| \}}Pq,q,W|rd|||f}nd}t||ddd|ddd|ddVq Wx=|jD]2}tjj|}t||d|ddVq WdS( Nu%s+%s@%sueditableuurluupdateu source_diru from_bundleTF(u_bundle_editable_dirsuosupathubasenameuvcsubackendsuNoneujoinu bundle_fileuexistsunameuopenureaducloseuparse_vcs_bundle_fileuInstallRequirementuTrueuFalseu_bundle_build_dirs( uselfudest_dirupackageu vcs_backenduurlurevuvcs_bundle_fileuvc_typeufpucontent((u /tmp/pip-zej_zi-build/pip/req.pyubundle_requirementsMs,      u&InstallRequirement.bundle_requirementsc Cs|j}|sttjj|d}tjj|d}g}g}x#|||f|||fgD]\}} } tjj|rjxtj|D]} tjj| | } | j| tjj| rtj d| | |fqntjj| s(tj d| tj | nt j tjj|| | qWtj|smtj|qmqjqjWd|_||_||_dS(NusrcubuilduZThe directory %s (containing package %s) already exists; cannot move source from bundle %suCreating directory %s(u_temp_build_diruAssertionErroruosupathujoinuexistsulistdiruappenduloggeruwarnuinfoumakedirsushutilumoveurmdiruNoneu_bundle_build_dirsu_bundle_editable_dirs( uselfudest_build_diru dest_src_dirubaseusrc_diru build_dirubundle_build_dirsubundle_editable_dirsu source_dirudest_dirudir_collectionudirnameudest((u /tmp/pip-zej_zi-build/pip/req.pyumove_bundle_filesgs4     #  u$InstallRequirement.move_bundle_filescCsAt|j|j|d|jd|jd|d|jd|dS(Nuuseruhomeurootu pycompileustrip_file_prefix(umove_wheel_filesunameurequ use_user_siteu target_diru pycompile(uselfuwheeldirurootustrip_file_prefix((u /tmp/pip-zej_zi-build/pip/req.pyumove_wheel_filess   u#InstallRequirement.move_wheel_filescCs%|jsttjj|jtS(N(u source_diruAssertionErroruosupathujoinuPIP_DELETE_MARKER_FILENAME(uself((u /tmp/pip-zej_zi-build/pip/req.pyudelete_marker_filenamesu)InstallRequirement.delete_marker_filenameNFT(1u__name__u __module__u __qualname__uNoneuFalseuTrueu__init__u classmethodu from_editableu from_lineu__str__u from_pathubuild_locationucorrect_build_locationupropertyunameuurl_nameusetup_pyu run_egg_infou _run_setup_pyu egg_info_datau egg_info_pathuegg_info_linesupkg_infoudependency_linksureucompileu_requirements_section_reu requirementsuabsolute_versionsuinstalled_versionuassert_source_matches_versionuupdate_editableu uninstallurollback_uninstallucommit_uninstalluarchiveu_clean_zip_nameuinstalluremove_temporary_sourceuinstall_editableu_filter_installucheck_if_existsuis_wheelu is_bundleubundle_requirementsumove_bundle_filesumove_wheel_filesudelete_marker_filename(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyuInstallRequirement?sV -*   ? *   n   ) ]  !   uInstallRequirementcBsh|EeZdZddZddZddZddZd d Zd d Zd dZ dS(u RequirementscCsg|_i|_dS(N(u_keysu_dict(uself((u /tmp/pip-zej_zi-build/pip/req.pyu__init__s uRequirements.__init__cCs|jS(N(u_keys(uself((u /tmp/pip-zej_zi-build/pip/req.pyukeyssuRequirements.keyscsfddjDS(Ncsg|]}j|qS((u_dict(u.0ukey(uself(u /tmp/pip-zej_zi-build/pip/req.pyu s u'Requirements.values..(u_keys(uself((uselfu /tmp/pip-zej_zi-build/pip/req.pyuvaluessuRequirements.valuescCs ||jkS(N(u_keys(uselfuitem((u /tmp/pip-zej_zi-build/pip/req.pyu __contains__suRequirements.__contains__cCs3||jkr"|jj|n||j|s u)Requirements.__repr__..uRequirements({%s})u, (ukeysujoin(uselfuvalues((uselfu /tmp/pip-zej_zi-build/pip/req.pyu__repr__suRequirements.__repr__N( u__name__u __module__u __qualname__u__init__ukeysuvaluesu __contains__u __setitem__u __getitem__u__repr__(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyu Requirementss      u Requirementsc BsF|EeZdZd(d)d)d)d(d)d)d)d(d*d(dd ZddZddZddZ e d d Z e d d Z e d dZ ddZd)ddZddZd)d)ddZd)ddZddZddZd(d)ddZfdd Zd!d"Zd#Zd$d%Zd&d'Zd(S(+uRequirementSetcCs||_||_||_|r6tjj|}n||_||_||_| |_ t |_ i|_ g|_ | |_g|_g|_g|_||_| |_||_| pt|_| |_||_dS(N(u build_dirusrc_diru download_diruosupathu expanduserudownload_cacheuupgradeuignore_installeduforce_reinstallu Requirementsu requirementsurequirement_aliasesuunnamed_requirementsuignore_dependenciesusuccessfully_downloadedusuccessfully_installedureqs_to_cleanupuas_eggu use_user_siteu target_diru PipSessionusessionu pycompileuwheel_download_dir(uselfu build_dirusrc_diru download_dirudownload_cacheuupgradeuignore_installeduas_eggu target_diruignore_dependenciesuforce_reinstallu use_user_siteusessionu pycompileuwheel_download_dir((u /tmp/pip-zej_zi-build/pip/req.pyu__init__s,                  uRequirementSet.__init__cCsLdd|jjD}|jddddjdd|DS(NcSsg|]}|js|qS((u comes_from(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu s u*RequirementSet.__str__..ukeycSs |jjS(N(unameulower(ureq((u /tmp/pip-zej_zi-build/pip/req.pyusu(RequirementSet.__str__..u cSsg|]}t|jqS((ustrureq(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu s (u requirementsuvaluesusortujoin(uselfureqs((u /tmp/pip-zej_zi-build/pip/req.pyu__str__suRequirementSet.__str__cCs|j}|j|_|j|_|j|_|j|_|sR|jj|ni|j|rtd||j ||fn||j |<|j |kr||j |j su/RequirementSet.has_editables..css|]}|jVqdS(N(ueditable(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu sTF(uanyu requirementsuvaluesuTrueuunnamed_requirementsuFalse(uself((u /tmp/pip-zej_zi-build/pip/req.pyu has_editabless "uRequirementSet.has_editablescCsg|jrctjj|j|_tjj|jr:dStjdtdt |jndS(Nu!Could not find download directoryu0Could not find or access download directory '%s'TF( u download_diruosupathu expanduseruexistsuTrueuloggerufataluInstallationErroru display_pathuFalse(uself((u /tmp/pip-zej_zi-build/pip/req.pyu is_downloads  uRequirementSet.is_downloadcCslxU||jfD]A}||jkr3|j|S||jkr|j|j|SqWtd|dS(NuNo project with the name %r(uloweru requirementsurequirement_aliasesuKeyError(uselfu project_nameuname((u /tmp/pip-zej_zi-build/pip/req.pyuget_requirements  uRequirementSet.get_requirementcCs8x1|jjD] }|jd||jqWdS(Nu auto_confirm(u requirementsuvaluesu uninstallucommit_uninstall(uselfu auto_confirmureq((u /tmp/pip-zej_zi-build/pip/req.pyu uninstallsuRequirementSet.uninstallcCst|j}t|jj}xc|s3|r|rK|jd}n|jd}d}|j r|j r|j|j r|j r|j ot |j  s|j |_ nd|_ qd}n|j rtjd|qn|jr |jdkrE|j|j|_qEn%|rE|j|j|j |_n|jdk r'tjj|j r'td||jfq'q'WdS(Niu<Requirement already satisfied (use --upgrade to upgrade): %suCould 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?)TF(ulistuunnamed_requirementsu requirementsuvaluesupopuTrueuignore_installedueditableucheck_if_existsu satisfied_byuupgradeu use_user_siteudist_in_usersiteuconflicts_withuNoneuFalseuloggerunotifyu source_dirubuild_locationusrc_diru build_diru is_downloaduosupathuisdiruInstallationError(uselfuunnamedureqsureq_to_installuinstall_needed((u /tmp/pip-zej_zi-build/pip/req.pyu locate_filess4        %uRequirementSet.locate_filesc1Cst|j}t|jj}x|s3|r|rK|jd}n|jd}d}d}d} |j r|j r|j |j r`|j rW|j r|j ry|j||j } Wn?tk rd}d}Yqtk r tjd} YqX| j|_n|s]|jo6t|j  sH|j |_nd|_ q]q`d}n|j r|rtjd|qtjd|qn|j rtjd|n^|r|jr|jjjdrtjdtt|jqtjd|ntjd 7_zld} d} |j r|jdkri|j|j } | |_n |j} t!j"j#|j$st%|j$n|j&|j' |j'r|j(|j)|j*q1|j(nV|r1|j|j$|j' } d}d} |j+rnWt!j"j#t!j"j,| d rUt-t.j/d || fn|jdkr| rs| n|j|d |j } nt0|j} | st1| rcyY| j2j3t4r|j5r|j5}d}n|j*}|j'}|j6| | ||Wqit7k r_}z5tj8d ||ft9d||| fWYdd}~XqiXnd}|r1|j:} | o| j2j3t4} | r|j;|j$|j x|j<D] }|j=||j>|qWn|j'r3| |_| s|j(n| r| j?t@jAkr|j)|j*qny| rQ| |_| j|_n[| |_|j(|r}|j(ddn|jB|r|jr|jC|d}n|js|j n|j r.|j s|jr|jot|j  s|j |_nd|_ q+tjd|d}q.q1n| rttDjE| d}|jFsx|jG|_F|j>|n|jHsxd|jI|jJD]M}|jK|jLrqntMtN||}|j=||j>|qWqn&| s|jO|jP|jJr*tjddj,|jJn|jHsx|j|jJD]}ytDjQjR|jL}Wn?tSk rtjd}tjTd|||fwFYnX|jK|rqFntM||}|j=||j>|qFWn|jK|jUs|j>|qn| sE|j's/|jVdk rE|jWj=|qEn|r|jXj=||r|jr|jjdr|jC|qnWdtjd 8_Xq'WdS(uGPrepare process. Create temp directories, download and/or unpack files.iiu"Requirement already up-to-date: %su<Requirement already satisfied (use --upgrade to upgrade): %su Obtaining %sufile:u Unpacking %suDownloading/unpacking %siusetup.pyu pip can't proceed with requirement '%s' due to a pre-existing build directory. location: %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. uupgradeu4Could not install requirement %s because of error %suDCould not install requirement %s because of HTTP error %s for URL %sNuforce_root_egg_infou!Installing extra requirements: %ru,u.Invalid requirement: %r (%s) in requirement %sufile:///TF(Yulistuunnamed_requirementsu requirementsuvaluesupopuTrueuFalseuNoneuignore_installedueditableucheck_if_existsu satisfied_byuupgradeuforce_reinstalluurlufind_requirementuBestVersionAlreadyInstalleduDistributionNotFoundusysuexc_infou use_user_siteudist_in_usersiteuconflicts_withuloggerunotifyuloweru startswithu display_pathu url_to_pathuindentu source_dirubuild_locationusrc_diruosupathuexistsu build_diru_make_build_diruupdate_editableu is_downloadu run_egg_infouarchiveu download_diru from_bundleujoinuPreviousBuildDirErrorutextwrapudedentuLinkuAssertionErrorufilenameuendswithu wheel_extuwheel_download_diru unpack_urlu HTTPErrorufataluInstallationErroru is_bundleumove_bundle_filesubundle_requirementsuappenduadd_requirementuschemeuvcsu all_schemesuassert_source_matches_versionucopy_to_build_diru pkg_resourcesufind_distributionsurequas_requirementuignore_dependenciesurequiresuextrasuhas_requirementu project_nameuInstallRequirementustruadd_dependency_linksudependency_linksu Requirementuparseu ValueErroruerrorunameu_temp_build_dirureqs_to_cleanupusuccessfully_downloaded(uselfufinderuforce_root_egg_infoubundleuunnamedureqsureq_to_installuinstallubest_installedu not_founduurlu is_bundleuis_wheelulocationuunpacku download_diru do_downloaduexcueusubrequdisturequname((u /tmp/pip-zej_zi-build/pip/req.pyu prepare_files:sV            !#       !          )                            !uRequirementSet.prepare_filescCstjdtjd7_x|jD]}|jq&Wg}|jr_|j|jn|rx|j|jnx>|D]6}t j j |rtj d|t |qqWtjd8_dS(uClean up files, remove builds.uCleaning up...iuRemoving temporary dir %s...N(uloggerunotifyuindentureqs_to_cleanupuremove_temporary_sourceu_pip_has_created_build_diruappendu build_dirusrc_diruosupathuexistsuinfourmtree(uselfubundleurequ remove_dirudir((u /tmp/pip-zej_zi-build/pip/req.pyu cleanup_files's   uRequirementSet.cleanup_filescCs1|jtko0tjjtjj|jtS(N(u build_diru build_prefixuosupathuexistsujoinuPIP_DELETE_MARKER_FILENAME(uself((u /tmp/pip-zej_zi-build/pip/req.pyu_pip_has_created_build_dir>su)RequirementSet._pip_has_created_build_dircCs|jr|jp|j}tjd|j|ftjj||j}t j |j |t dd|dgd|dddS(NuCopying %s to %supythonu %s/setup.pyucleanucwdu command_descupython setup.py clean( ueditableusrc_diru build_diruloggeruinfounameuosupathujoinushutilucopytreeu source_dirucall_subprocess(uselfureq_to_installu target_dirudest((u /tmp/pip-zej_zi-build/pip/req.pyucopy_to_build_dirBs u RequirementSet.copy_to_build_dircCs|dkr|j}nt|rL|r3|}n|}t|||nat|r~t||||rt|qn/t|||j||j |rt|ndS(N( uNoneu download_diru is_vcs_urluunpack_vcs_linku is_file_urluunpack_file_urluwrite_delete_marker_fileuunpack_http_urludownload_cacheusession(uselfulinkulocationu download_diru only_downloaduloc((u /tmp/pip-zej_zi-build/pip/req.pyu unpack_urlJs&      uRequirementSet.unpack_urlc "Osdd|jjD}tjjd}xI|D]A}|jdkr5|j|kr5|j||j|q5q5W|rt j ddj dd|Dnt j d7_ zCx<|D]4}|jd kr0y=tjjd } tj d} | | kr| |_nWq0tjk r,Yq0Xn|jrt j d |jt j d7_ z|jd dWd t j d8_ Xny|j||||Wn+|jr|j r|jnYn X|jr|jr|jn|jqWWd t j d8_ X||_d S(uRInstall everything in this set (after having downloaded and unpacked the packages)cSsg|]}|js|qS((u satisfied_by(u.0ur((u /tmp/pip-zej_zi-build/pip/req.pyu ks u*RequirementSet.install..udistribute>=0.7u distributeu!Installing collected packages: %su, cSsg|]}|jqS((uname(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu {s iu setuptoolsudistribute<0.7uFound existing installation: %su auto_confirmNT(u requirementsuvaluesu pkg_resourcesu Requirementuparseunameuinstalled_versionuremoveuappenduloggerunotifyujoinuindentuget_distributionuconflicts_withuDistributionNotFoundu uninstalluTrueuinstalluinstall_succeededurollback_uninstallucommit_uninstalluremove_temporary_sourceusuccessfully_installed( uselfuinstall_optionsuglobal_optionsuargsukwargsu to_installudistribute_requrequ requirementudistribute_requirementuexisting_distribute((u /tmp/pip-zej_zi-build/pip/req.pyuinstallisJ   *       uRequirementSet.installcCstj|dtj}g}xJ|jdf|jdffD]*\}}tjjtjj|}xtj |D]\}}}xt j D]} | } d} } | j |krxR|D]} |j| rPqqW| jtjj||\} } |j|| j}| ji| d6| d6}|j| j PqqWd|kre|jdnxQ|D]I}tjj||}|j||}|j|d|ddqlWx_|D]W}|tkrqntjj||}|j||}|j||d|qW| rwtjj||}|j||}|j|d||qwqwWq=W|jd |j|jdS( Nuwubuildusrcuurlurevu pip-egg-infou/uupip-manifest.txt(uzipfileuZipFileu ZIP_DEFLATEDu build_dirusrc_diruosupathunormcaseuabspathuwalkuvcsubackendsuNoneudirnameu startswithuget_infoujoinuappendu bundle_fileuguideuremoveu_clean_zip_nameuwritestruPIP_DELETE_MARKER_FILENAMEuwriteubundle_requirementsuclose(uselfubundle_filenameuzipuvcs_dirsudirubasenameudirpathudirnamesu filenamesubackendu vcs_backenduvcs_urluvcs_revuvcs_diruvcs_bundle_fileu vcs_guideudirnameunameufilename((u /tmp/pip-zej_zi-build/pip/req.pyu create_bundlesL+           #uRequirementSet.create_bundleu# This is a pip bundle file, that contains many source packages # that can be installed as a group. You can install this like: # pip this_file.zip # The rest of the file contains a list of all the packages included: cCs|jg}xAdd|jjDD]#}|jd|j|jfq)W|jdxAdd|jjDD]#}|jd|j|jfqzWdj|S(NcSsg|]}|js|qS((u comes_from(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu s u6RequirementSet.bundle_requirements..u%s==%s uC# These packages were installed to satisfy the above requirements: cSsg|]}|jr|qS((u comes_from(u.0ureq((u /tmp/pip-zej_zi-build/pip/req.pyu s u(u BUNDLE_HEADERu requirementsuvaluesuappendunameuinstalled_versionujoin(uselfupartsureq((u /tmp/pip-zej_zi-build/pip/req.pyubundle_requirementss #! #!u"RequirementSet.bundle_requirementscCse|j|tjjs/td||f|t|dd}|jtjjd}|S(Nu$name %r doesn't start with prefix %riu/(u startswithuosupathusepuAssertionErrorulenureplace(uselfunameuprefix((u /tmp/pip-zej_zi-build/pip/req.pyu_clean_zip_names uRequirementSet._clean_zip_nameNFT(u__name__u __module__u __qualname__uNoneuFalseuTrueu__init__u__str__uadd_requirementuhas_requirementupropertyuhas_requirementsu has_editablesu is_downloaduget_requirementu uninstallu locate_filesu prepare_filesu cleanup_filesu_pip_has_created_build_dirucopy_to_build_diru unpack_urluinstallu create_bundleu BUNDLE_HEADERubundle_requirementsu_clean_zip_name(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyuRequirementSets2       '  E 7 uRequirementSetcCstj|t|dS(N(uosumakedirsuwrite_delete_marker_file(u build_dir((u /tmp/pip-zej_zi-build/pip/req.pyu_make_build_dirs u_make_build_diru^(http|https|file):ccs|dkrt}nd}|r-|jnd}|rKtj|}ntjjtjj|}t |d|d|\}}xzt |j D]f\} } | d7} | j } tj dd| } | s| jdrqn|r|j| rqn| jds&| jdr| jdrN| d dj } n%| tddj j d } tj|rtj|| } n3tj| stjjtjj|| } nx3t| |d|d |d|D] } | VqWq| jd s| jd rq| jds=| jdr| jdre| d dj } n%| tddj jd } tjj|| } tjj| r| } n|r|jj| qq| jds| jdrY| jdr| d dj } n%| tddj jd } |r| g|_qq| jdr| tddj jd } |r|jj| qq| jdrd!|_q| jdrg|_q| jdr:| tddj jd } |jtt| j gO_q| jdrUd!|_!q| jdrgq| jdryq| jdr| tddj jd } |j"tt| j gO_"q| jdr/| tddj jd } |j"tt| j gO_"qd|| f}| jds]| jdr| jdr| d dj } n%| tddj jd } t#j$| d|d|r|j%nd}n$t#j&| |dt'|d d}|VqWdS("Nu comes_fromusessioniu (^|\s)#.*$uu#u-ru --requirementiu=uoptionsu-Zu--always-unzipu-fu --find-linksu-iu --index-urlu--extra-index-urlu --use-wheelu --no-indexu--allow-externalu--allow-all-externalu--no-allow-externalu--no-allow-insecureu--allow-insecureu--allow-unverifiedu-r %s (line %s)u-eu --editableu default_vcsu prereleasesupreT((uNoneu PipSessionuskip_requirements_regexureucompileuosupathudirnameuabspathuget_file_contentu enumerateu splitlinesustripusubu startswithusearchulenu _scheme_reuurlparseuurljoinujoinuparse_requirementsulstripuexistsu find_linksuappendu index_urlsuTrueu use_wheeluallow_externalusetunormalize_nameuloweruallow_all_externaluallow_unverifieduInstallRequirementu from_editableu default_vcsu from_lineugetattr(ufilenameufinderu comes_fromuoptionsusessionu skip_matchu skip_regexu reqs_file_dirucontentu line_numberulineureq_urluitemurelative_to_reqs_fileureq((u /tmp/pip-zej_zi-build/pip/req.pyuparse_requirementss     %$( % %%  %' %'%'%'$uparse_requirementscCs.tjd|}|r*|jd}n|S(u2 Strip req postfix ( -dev, 0.2, etc ) u^(.*?)(?:-dev|-\d.*)$i(ureusearchugroup(urequmatch((u /tmp/pip-zej_zi-build/pip/req.pyu_strip_postfixgsu_strip_postfixcCspdd|jdddjdD}d}|ddkrO|d}n|dd krl|d}n|S(NcSsg|]}|r|qS(((u.0up((u /tmp/pip-zej_zi-build/pip/req.pyu ts u'_build_req_from_url..u#iiu/iutagsubranchesutagubranchiutrunki(utagsubranchesutagubranchiii(usplituNone(uurlupartsureq((u /tmp/pip-zej_zi-build/pip/req.pyu_build_req_from_urlrs,  u_build_req_from_urlcCs{tjd}|j|}|rwt}xC|D];}|\}}||kretd|n|||[^&=]+)=(?P[^&=]+)u%s option already definedN(ureucompileufindalludictu ExceptionuNone(urequregexpumatcheduretuoptionunameuvalue((u /tmp/pip-zej_zi-build/pip/req.pyu_build_editable_options}s    u_build_editable_optionsc Csm|}d}tjd|}|rE|jd}|jd}n|}tjj|rtjjtjj|dst d|nt |}n|j j dr|rd|t jjd|jfSd|dfSnx;tD]3}|j j d|rd ||f}PqqWd |kr_|rL|d |}q_t d |n|jd dd j }tj|sd |djddtjDd}t |nyt|} Wn8tk rtjd} t d|| fYnX| s"d| krJt|} | sTt d|qTn | d} t| } | || fS(uSParses svn+http://blahblah@rev#egg=Foobar into a requirement (Foobar) and a URLu^(.+)(\[[^\]]+\])$iiusetup.pyu;Directory %r is not installable. File 'setup.py' not found.ufile:u__placeholder__u%s:u%s+%su+ub%s should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+iuFor --editable=%s only u, cSsg|]}|jdqS(u+URL(uname(u.0ubackend((u /tmp/pip-zej_zi-build/pip/req.pyu s u"parse_editable..u is currently supportedu*--editable=%s error in editable options:%sueggu@--editable=%s is not the right format; it must have #egg=PackageN(uNoneureumatchugroupuosupathuisdiruexistsujoinuInstallationErroru path_to_urluloweru startswithu pkg_resourcesu Requirementuparseuextrasuvcsusplitu get_backendubackendsu_build_editable_optionsu Exceptionusysuexc_infou_build_req_from_urlu_strip_postfix( u editable_requ default_vcsuurluextrasumu url_no_extrasuversion_controluvc_typeu error_messageuoptionsumessageurequpackage((u /tmp/pip-zej_zi-build/pip/req.pyuparse_editablesT!   $    uparse_editablecBs|EeZdZdZddZddZddZdd Zd d Zd d Z ddZ dddZ ddZ ddZdS(uUninstallPathSetuMA set of file paths to be removed in the uninstallation of a requirement.cCs@t|_t|_i|_||_d|_g|_dS(N(usetupathsu_refuseupthudistuNoneusave_diru _moved_paths(uselfudist((u /tmp/pip-zej_zi-build/pip/req.pyu__init__s      uUninstallPathSet.__init__cCs t|S(us Return True if the given path is one we are permitted to remove/modify, False otherwise. (uis_local(uselfupath((u /tmp/pip-zej_zi-build/pip/req.pyu _permittedsuUninstallPathSet._permittedcCsFt|jsBtjd|jjt|jjtjfdSdS(Nu1Not uninstalling %s at %s, outside environment %sFT( u dist_is_localudistuloggerunotifyu project_nameunormalize_pathulocationusysuprefixuFalseuTrue(uself((u /tmp/pip-zej_zi-build/pip/req.pyu_can_uninstalls  &uUninstallPathSet._can_uninstallcCst|}tjj|s"dS|j|rD|jj|n|jj|tjj|ddkrt r|jt j |ndS(Niu.py( unormalize_pathuosupathuexistsu _permittedupathsuaddu_refuseusplitextu uses_pycacheuimpucache_from_source(uselfupath((u /tmp/pip-zej_zi-build/pip/req.pyuadds "uUninstallPathSet.addcCskt|}|j|rW||jkr@t||j| s u,UninstallPathSet.compact..(usetusortedulenuanyuadd(uselfupathsu short_paths((upathu /tmp/pip-zej_zi-build/pip/req.pyucompacts   uUninstallPathSet.compactcCs5tjj|jtjj|djtjjS(Ni(uosupathujoinusave_diru splitdriveulstripusep(uselfupath((u /tmp/pip-zej_zi-build/pip/req.pyu_stashs uUninstallPathSet._stashc Cs|jsdS|js4tjd|jjdStjd|jjtjd7_t|j|j}z6|rd}n-x|D]}tj|qWt dd}|j rtjdx*|j|j D]}tj|qWn|dkrt j d d d d |_ xK|D]C}|j|}tjd ||jj|t||q"Wx!|jjD]}|jqyWtjd|jjnWdtjd8_XdS(u[Remove paths in ``self.paths`` with confirmation (unless ``auto_confirm`` is True).Nu7Can't uninstall '%s'. No files were found to uninstall.uUninstalling %s:iuyuProceed (y/n)? unu.Not removing or modifying (outside of prefix):usuffixu -uninstalluprefixupip-uRemoving file or directory %suSuccessfully uninstalled %s(uyun(u_can_uninstallupathsuloggerunotifyudistu project_nameuindentusorteducompactuasku_refuseutempfileumkdtempusave_diru_stashuinfou _moved_pathsuappendurenamesupthuvaluesuremove(uselfu auto_confirmupathsuresponseupathunew_pathupth((u /tmp/pip-zej_zi-build/pip/req.pyuremoves<         uUninstallPathSet.removecCs|jdkr*tjd|jjdStjd|jjx>|jD]3}|j |}tj d|t ||qKWx|j D]}|j qWdS(u1Rollback the changes previously made by remove().u'Can't roll back %s; was not uninstalleduRolling back uninstall of %su Replacing %sNF(usave_diruNoneuloggeruerrorudistu project_nameuFalseunotifyu _moved_pathsu_stashuinfourenamesupthurollback(uselfupathutmp_pathupth((u /tmp/pip-zej_zi-build/pip/req.pyurollback9suUninstallPathSet.rollbackcCs5|jdk r1t|jd|_g|_ndS(u?Remove temporary save dir: rollback will no longer be possible.N(usave_diruNoneurmtreeu _moved_paths(uself((u /tmp/pip-zej_zi-build/pip/req.pyucommitFs  uUninstallPathSet.commitNF(u__name__u __module__u __qualname__u__doc__u__init__u _permittedu_can_uninstalluadduadd_pthucompactu_stashuFalseuremoveurollbackucommit(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyuUninstallPathSets     % uUninstallPathSetcBsD|EeZdZddZddZddZddZd S( uUninstallPthEntriescCsGtjj|s%td|n||_t|_d|_dS(Nu.Cannot remove entries from nonexistent file %s( uosupathuisfileuUninstallationErrorufileusetuentriesuNoneu _saved_lines(uselfupth_file((u /tmp/pip-zej_zi-build/pip/req.pyu__init__Os   uUninstallPthEntries.__init__cCsatjj|}tjdkrMtjj|d rM|jdd}n|jj|dS(Nuwin32iu\u/( uosupathunormcaseusysuplatformu splitdriveureplaceuentriesuadd(uselfuentry((u /tmp/pip-zej_zi-build/pip/req.pyuaddVs&uUninstallPthEntries.addc Cstjd|jt|jd}|j}||_|jtdd|Drgd}nd}xR|jD]G}y,tjd||j t ||Wqwt k rYqwXqwWt|jd}|j ||jdS( NuRemoving pth entries from %s:urbcss!|]}td|kVqdS(u N(ub(u.0uline((u /tmp/pip-zej_zi-build/pip/req.pyu gsu-UninstallPthEntries.remove..u u uRemoving entry: %suwb( uloggeruinfoufileuopenu readlinesu _saved_linesucloseuanyuentriesuremoveubu ValueErroru writelines(uselfufhulinesuendlineuentry((u /tmp/pip-zej_zi-build/pip/req.pyuremove`s"       uUninstallPthEntries.removecCsk|jdkr'tjd|jdStjd|jt|jd}|j|j|j dS(Nu.Cannot roll back changes to %s, none were madeu!Rolling %s back to previous stateuwbFT( u _saved_linesuNoneuloggeruerrorufileuFalseuinfouopenu writelinesucloseuTrue(uselfufh((u /tmp/pip-zej_zi-build/pip/req.pyurollbackus uUninstallPthEntries.rollbackN(u__name__u __module__u __qualname__u__init__uadduremoveurollback(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyuUninstallPthEntriesNs  uUninstallPthEntriescBs>|EeZdZdZddZddZddZdS( uFakeFileuQWrap a list of lines in an object with readline() to make ConfigParser happy.cCsdd|D|_dS(Ncss|] }|VqdS(N((u.0ul((u /tmp/pip-zej_zi-build/pip/req.pyu su$FakeFile.__init__..(u_gen(uselfulines((u /tmp/pip-zej_zi-build/pip/req.pyu__init__suFakeFile.__init__cCsTy7yt|jSWntk r5|jjSYnXWntk rOdSYnXdS(Nu(unextu_genu NameErroru StopIteration(uself((u /tmp/pip-zej_zi-build/pip/req.pyureadlines  uFakeFile.readlinecCs|jS(N(u_gen(uself((u /tmp/pip-zej_zi-build/pip/req.pyu__iter__suFakeFile.__iter__N(u__name__u __module__u __qualname__u__doc__u__init__ureadlineu__iter__(u __locals__((u /tmp/pip-zej_zi-build/pip/req.pyuFakeFiles  uFakeFile(cu email.parseru FeedParseruosuimpulocaleureusysushutilutempfileutextwrapuzipfileudistutils.utilu change_rootu pip.locationsubin_pyurunning_under_virtualenvuPIP_DELETE_MARKER_FILENAMEuwrite_delete_marker_fileubin_userupip.exceptionsuInstallationErroruUninstallationErroruUnsupportedWheeluBestVersionAlreadyInstalleduInvalidWheelFilenameuDistributionNotFounduPreviousBuildDirErrorupip.vcsuvcsupip.loguloggerupip.utilu display_pathurmtreeuaskuask_path_existsu backup_diruis_installable_diruis_localu dist_is_localudist_in_usersiteudist_in_site_packagesurenamesunormalize_pathu egg_link_pathumake_path_relativeucall_subprocessu is_prereleaseunormalize_nameupip.backwardcompatuurlparseuurllibu uses_pycacheu ConfigParseru string_typesu HTTPErroruget_python_versionubu pip.indexuLinku build_prefixu pip.downloadu PipSessionuget_file_contentuis_urlu url_to_pathu path_to_urluis_archive_fileuunpack_vcs_linku is_vcs_urlu is_file_urluunpack_file_urluunpack_http_urlu pip.wheelupipumove_wheel_filesuWheelu wheel_extu pip._vendoru pkg_resourcesusixuread_text_fileuobjectuInstallRequirementu RequirementsuRequirementSetu_make_build_dirucompileuIu _scheme_reuNoneuparse_requirementsu_strip_postfixu_build_req_from_urlu_build_editable_optionsuparse_editableuUninstallPathSetuUninstallPthEntriesuFakeFile(((u /tmp/pip-zej_zi-build/pip/req.pyusT         (4p:L  WN  c A|2