£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

7Re)G c               @   s\  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l m Z d  d l m Z m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d  d l 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. m/ Z/ m0 Z0 d  d	 l1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 d  d
 l: m; Z; d  d l m< Z< d  d l= m> Z> m? Z? m@ Z@ mA ZA mB ZB mC ZC mD ZD mE ZE mF ZF mG ZG mH ZH d  d lI ZJ d  d lI mK ZK mL ZL mM ZM d  d lN mO ZO mP ZP d d   ZQ Gd d   d eR  ZS Gd d   d eR  ZT Gd d   d eR  ZU d d   ZV e jW d e jX  ZY eZ eZ eZ eZ d d  Z[ d d   Z\ d d   Z] d  d!   Z^ eZ d" d#  Z_ Gd$ d%   d% eR  Z` Gd& d'   d' eR  Za Gd( d)   d) eR  Zb d S(*   i    (   u
   FeedParserN(   u   change_root(   u   bin_pyu   running_under_virtualenvu   PIP_DELETE_MARKER_FILENAMEu   write_delete_marker_fileu   bin_user(   u   InstallationErroru   UninstallationErroru   UnsupportedWheelu   BestVersionAlreadyInstalledu   InvalidWheelFilenameu   DistributionNotFoundu   PreviousBuildDirError(   u   vcs(   u   logger(   u   display_pathu   rmtreeu   asku   ask_path_existsu
   backup_diru   is_installable_diru   is_localu   dist_is_localu   dist_in_usersiteu   dist_in_site_packagesu   renamesu   normalize_pathu   egg_link_pathu   make_path_relativeu   call_subprocessu   is_prereleaseu   normalize_name(   u   urlparseu   urllibu   uses_pycacheu   ConfigParseru   string_typesu	   HTTPErroru   get_python_versionu   b(   u   Link(   u   build_prefix(   u
   PipSessionu   get_file_contentu   is_urlu   url_to_pathu   path_to_urlu   is_archive_fileu   unpack_vcs_linku
   is_vcs_urlu   is_file_urlu   unpack_file_urlu   unpack_http_url(   u   move_wheel_filesu   Wheelu	   wheel_ext(   u   pkg_resourcesu   sixc             C   s   t  |  d   } | j   } Wd QXd t j d  d g } x: | D]2 } y | j |  } Wn t k
 rs wC Yn XPqC Wt |  t k s t	  | S(   uQ  Return 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.

    u   rbNu   utf-8u   latin1F(
   u   openu   readu   localeu   getpreferredencodingu   Falseu   decodeu   UnicodeDecodeErroru   typeu   bytesu   AssertionError(   u   filenameu   fpu   datau	   encodingsu   enc(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   read_text_file'   s    	u   read_text_filec             B   so  |  Ee  Z d  Z dM dN dM dN dO dM dM dN dO d d 	 Z e dM dM d d   Z e dM dM d d   Z	 d d   Z
 d	 d
   Z dO d d  Z d d   Z e d d    Z e d d    Z e d d    Z dN d d  Z d Z d d   Z d d   Z d d   Z d d   Z e d  d!    Z e j d"  Z f  d# d$  Z e d% d&    Z e d' d(    Z d) d*   Z dO d+ d,  Z  dN d- d.  Z! d/ d0   Z" d1 d2   Z# d3 d4   Z$ d5 d6   Z% f  dM dM d7 d8  Z& d9 d:   Z' f  d; d<  Z( d= d>   Z) d? d@   Z* e dA dB    Z+ e dC dD    Z, dE dF   Z- dG dH   Z. dM dM dI dJ  Z/ e dK dL    Z0 dM S(P   u   InstallRequirementc             C   sL  f  |  _  t | t  r9 t j j |  } | j  |  _  n  | |  _ | |  _ | |  _ | |  _	 |	 d  k rr i  }	 n  |	 |  _ | |  _ | |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ | |  _ d  |  _ d  |  _ d |  _ d  |  _ |
 |  _ | |  _ | rd |  _ n= |  j d  k	 r?t d d   |  j j D  |  _ n	 d |  _ d  S(   Nc             S   s0   g  |  ]& } t  | d   o) | d d k  q S(   i   i    u   !=(   u   is_prerelease(   u   .0u   x(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>l   s   	 u/   InstallRequirement.__init__.<locals>.<listcomp>FT(   u   extrasu
   isinstanceu   string_typesu   pkg_resourcesu   Requirementu   parseu   requ
   comes_fromu
   source_diru   editableu   Noneu   editable_optionsu   urlu   as_eggu   _egg_info_pathu   satisfied_byu   conflicts_withu   _temp_build_diru
   _is_bundleu   updateu   install_succeededu   uninstalledu   Falseu   use_user_siteu
   target_diru   from_bundleu	   pycompileu   Trueu   prereleasesu   anyu   specs(   u   selfu   requ
   comes_fromu
   source_diru   editableu   urlu   as_eggu   updateu   prereleasesu   editable_optionsu   from_bundleu	   pycompile(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__A   s<    																					%u   InstallRequirement.__init__c       	      C   s   t  | |  \ } } } | j d  r6 t |  } n d  } |  | | d | d d d | d | d d } | d  k	 r | | _ n  | S(   Nu   file:u
   source_diru   editableu   urlu   editable_optionsu   prereleasesT(   u   parse_editableu
   startswithu   url_to_pathu   Noneu   Trueu   extras(	   u   clsu   editable_requ
   comes_fromu   default_vcsu   nameu   urlu   extras_overrideu
   source_diru   res(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   from_editablep   s    	u    InstallRequirement.from_editablec       	      C   s  d	 } | j   } d	 } t j j t j j |   } d	 } t |  rW t |  } n t j j |  r t j j	 | k s | j
 d  r t |  s t d |   n  t t |   } nF t |  rt j j |  s t j d |  n  t t |   } n  | r| d	 k r| j } | j } | j d k rst j d |  rst t j j t j j | j    } n  | j t k rt | j  } | j   st d | j   qqn | } |  | | d | d | S(
   u   Creates 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.uA   Requirement %r looks like a filename, but the file does not existu   fileu   \.\./u-   %s is not a supported wheel on this platform.u   urlu   prereleasesN(   u   Noneu   stripu   osu   pathu   normpathu   abspathu   is_urlu   Linku   isdiru   sepu
   startswithu   is_installable_diru   InstallationErroru   path_to_urlu   is_archive_fileu   isfileu   loggeru   warnu   url_without_fragmentu   egg_fragmentu   schemeu   reu   searchu   extu	   wheel_extu   Wheelu   filenameu	   supportedu   UnsupportedWheel(	   u   clsu   nameu
   comes_fromu   prereleasesu   urlu   requ   pathu   linku   wheel(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   from_line   s4    3		!*u   InstallRequirement.from_linec             C   s   |  j  r8 t |  j   } |  j rA | d |  j 7} qA n	 |  j } |  j d  k	 rm | d t |  j j  7} n  |  j r t |  j t	  r |  j } n |  j j
   } | r | d | 7} q n  | S(   Nu    from %su    in %su
    (from %s)(   u   requ   stru   urlu   satisfied_byu   Noneu   display_pathu   locationu
   comes_fromu
   isinstanceu   string_typesu	   from_path(   u   selfu   su
   comes_from(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __str__   s    				u   InstallRequirement.__str__c             C   sv   |  j  d  k r d  St |  j   } |  j rr t |  j t  rI |  j } n |  j j   } | rr | d | 7} qr n  | S(   Nu   ->(   u   requ   Noneu   stru
   comes_fromu
   isinstanceu   string_typesu	   from_path(   u   selfu   su
   comes_from(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   from_path   s    	u   InstallRequirement.from_pathc             C   s   |  j  d  k	 r |  j  S|  j d  k rJ t j d d  |  _  | |  _ |  j  S|  j re |  j j   } n	 |  j } t	 j
 j |  s t |  n  t	 j
 j | |  S(   Nu   -buildu   pip-(   u   _temp_build_diru   Noneu   requ   tempfileu   mkdtempu   _ideal_build_diru   editableu   nameu   loweru   osu   pathu   existsu   _make_build_diru   join(   u   selfu	   build_diru   unpacku   name(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   build_location   s    			u!   InstallRequirement.build_locationc             C   s8  |  j  d k	 r d S|  j d k	 s( t  |  j s7 t  |  j } |  j } |  ` |  j rj |  j j   } n	 |  j } t	 j
 j | |  } t	 j
 j |  s t j d |  t |  n  t	 j
 j |  r t d t |    n  t j d |  t |  t |  f  t j | |  | |  _ | |  _  d |  _ d S(   uk   If the build location was a temporary directory, this will move it
        to a new more permanent locationNu   Creating directory %su<   A package already exists in %s; please remove it to continueu,   Moving package %s from %s to new location %s(   u
   source_diru   Noneu   requ   AssertionErroru   _temp_build_diru   _ideal_build_diru   editableu   nameu   loweru   osu   pathu   joinu   existsu   loggeru   debugu   _make_build_diru   InstallationErroru   display_pathu   shutilu   moveu   _egg_info_path(   u   selfu   old_locationu   new_build_diru   nameu   new_location(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   correct_build_location   s0    							u)   InstallRequirement.correct_build_locationc             C   s   |  j  d  k r d  S|  j  j S(   N(   u   requ   Noneu   project_name(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   name   s    u   InstallRequirement.namec             C   s&   |  j  d  k r d  St j |  j  j  S(   N(   u   requ   Noneu   urllibu   quoteu   unsafe_name(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   url_name   s    u   InstallRequirement.url_namec             C   s   y d d  l  } Wn t k
 r0 t d   Yn Xd } |  j rt d |  j k rt t j j |  j |  j d |  } n t j j |  j |  } t j	 r t
 | t j  r | j t j    } n  | S(   Ni    uB   setuptools must be installed to install from a source distributionu   setup.pyu   subdirectory(   u
   setuptoolsu   ImportErroru   InstallationErroru   editable_optionsu   osu   pathu   joinu
   source_diru   sixu   PY2u
   isinstanceu	   text_typeu   encodeu   sysu   getfilesystemencoding(   u   selfu
   setuptoolsu
   setup_fileu   setup_py(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   setup_py  s    
u   InstallRequirement.setup_pyc             C   s  |  j  s t  |  j r8 t j d |  j |  j f  n t j d |  j |  j f  t j d 7_ z>|  j d k r t j	 j
 t j	 j |  j  d   r t t j	 j |  j  d   n  |  j } | j d t |  j   } | j d t |  j   } t j d	 | d
 g } |  j s| r&g  } nF t j	 j |  j  d  } t j	 j |  s`t j |  n  d d g } t | | d |  j  d |  j d d d t j d d Wd  t j d 8_ X|  j st j j d |  j    |  _ |  j   n  d  S(   Nu2   Running setup.py (path:%s) egg_info for package %su7   Running setup.py (path:%s) egg_info for package from %si   u
   distributeu
   setuptoolsu   distribute.egg-infou   __SETUP_PY__u   __PKG_NAME__u   -cu   egg_infou   pip-egg-infou
   --egg-baseu   cwdu   filter_stdoutu   show_stdoutu   command_levelu   command_descu   python setup.py egg_infou   %(Name)s==%(Version)sF(   u
   source_diru   AssertionErroru   nameu   loggeru   notifyu   setup_pyu   urlu   indentu   osu   pathu   isdiru   joinu   rmtreeu   _run_setup_pyu   replaceu   repru   sysu
   executableu   editableu   existsu   makedirsu   call_subprocessu   _filter_installu   Falseu   VERBOSE_DEBUGu   requ   pkg_resourcesu   Requirementu   parseu   pkg_infou   correct_build_location(   u   selfu   force_root_egg_infou   scriptu   egg_info_cmdu   egg_base_optionu   egg_info_dir(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   run_egg_info!  s8    	 	4		
			u   InstallRequirement.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'))
c             C   sy   |  j  d  k	 r5 |  j  j |  s% d  S|  j  j |  S|  j sD t  |  j |  } t j j	 |  si d  St
 |  } | S(   N(   u   satisfied_byu   Noneu   has_metadatau   get_metadatau
   source_diru   AssertionErroru   egg_info_pathu   osu   pathu   existsu   read_text_file(   u   selfu   filenameu   data(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   egg_info_datab  s    u    InstallRequirement.egg_info_datac          	      s  |  j  d  k r|  j r$ |  j } n t j j |  j d  } t j |  } |  j rg  } xt j |  D] \   } } x- t	 j
 D]" } | | k r | j |  q q Wx t |  D] } t j j t j j   | d d   s
t j j t j j   | d d   r| j |  n  | d k s2| d k r | j |  q q W| j   f d d	   | D  qj Wd
 d	   | D } n  | st d | | f   n  | st d | | f   t |  d k r| j d d d    n  t j j | | d  |  _  n  t j j |  j  |  S(   Nu   pip-egg-infou   binu   pythonu   Scriptsu
   Python.exeu   testu   testsc                s%   g  |  ] } t  j j   |   q S(    (   u   osu   pathu   join(   u   .0u   dir(   u   root(    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	u4   InstallRequirement.egg_info_path.<locals>.<listcomp>c             S   s%   g  |  ] } | j  d   r |  q S(   u	   .egg-info(   u   endswith(   u   .0u   f(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u$   No files/directories in %s (from %s)i   u   keyc             S   s8   |  j  t j j  t j j r3 |  j  t j j  p6 d S(   Ni    (   u   countu   osu   pathu   sepu   altsep(   u   x(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   <lambda>  s   u2   InstallRequirement.egg_info_path.<locals>.<lambda>i    (   u   _egg_info_pathu   Noneu   editableu
   source_diru   osu   pathu   joinu   listdiru   walku   vcsu   dirnamesu   removeu   listu   existsu   extendu   InstallationErroru   AssertionErroru   lenu   sort(   u   selfu   filenameu   baseu	   filenamesu   dirsu   filesu   dir(    (   u   rootu    /tmp/pip-zej_zi-build/pip/req.pyu   egg_info_pathn  s6    		''u    InstallRequirement.egg_info_pathc             C   so   |  j  |  } | s g  Sg  } xI | j   D]; } | j   } | s, | j d  rZ q, n  | j |  q, W| S(   Nu   #(   u   egg_info_datau
   splitlinesu   stripu
   startswithu   append(   u   selfu   filenameu   datau   resultu   line(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   egg_info_lines  s    u!   InstallRequirement.egg_info_linesc             C   s^   t    } |  j d  } | sA t j d t |  j d    n  | j | pP d  | j   S(   Nu   PKG-INFOu   No PKG-INFO file found in %su    (   u
   FeedParseru   egg_info_datau   loggeru   warnu   display_pathu   egg_info_pathu   feedu   close(   u   selfu   pu   data(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   pkg_info  s    	#u   InstallRequirement.pkg_infoc             C   s   |  j  d  S(   Nu   dependency_links.txt(   u   egg_info_lines(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   dependency_links  s    u#   InstallRequirement.dependency_linksu	   \[(.*?)\]c             c   s   d  } xx |  j d  D]g } |  j j | j    } | rO | j d  } q n  | rx | | k rx t j d |  q n  | Vq Wd  S(   Nu   requires.txti   u   skipping extra %s(   u   Noneu   egg_info_linesu   _requirements_section_reu   matchu   loweru   groupu   loggeru   debug(   u   selfu   extrasu   in_extrau   lineu   match(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   requirements  s    u   InstallRequirement.requirementsc             c   s5   x. |  j  j D]  \ } } | d k r | Vq q Wd  S(   Nu   ==(   u   requ   specs(   u   selfu	   qualifieru   version(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   absolute_versions  s    u$   InstallRequirement.absolute_versionsc             C   s   |  j    d S(   Nu   version(   u   pkg_info(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   installed_version  s    u$   InstallRequirement.installed_versionc             C   sk   |  j  s t  |  j } | |  j k rD t j d |  |  j f  n# t j d t |  j   | |  f  d  S(   Nu'   Requested %s, but installing version %su;   Source in %s has version %s, which satisfies requirement %s(   u
   source_diru   AssertionErroru   installed_versionu   requ   loggeru   warnu   debugu   display_path(   u   selfu   version(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   assert_source_matches_version  s    		u0   InstallRequirement.assert_source_matches_versionc             C   s  |  j  s! t j d |  j  d  S|  j s0 t  |  j s? t  |  j  j d  rU d  Sd |  j  k sw t d |  j    |  j s d  S|  j  j d d  \ } } t	 j
 |  } | r | |  j   } | r | j |  j  q| j |  j  n d st d |  j  | f   d  S(   Nu>   Cannot update repository at %s; repository location is unknownu   file:u   +u   bad url: %ri   i    u+   Unexpected version control type (in %s): %s(   u   urlu   loggeru   infou
   source_diru   editableu   AssertionErroru
   startswithu   updateu   splitu   vcsu   get_backendu   obtainu   export(   u   selfu   obtainu   vc_typeu   urlu   backendu   vcs_backend(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   update_editable  s(    	"		u"   InstallRequirement.update_editablec                sd  |  j    s% t d |  j f   n  |  j p4 |  j } t |  } t j j | j	 | j
    d } t j j | j	 d j | j
   j d  d d    d } | j d t j d  } | j
   d	 } t |  } t j j |  }	 t j j |  }
 t j j |  } |	 s|
 rR|	 r)| } n | } | j |  | j d
  rx| j d
  j   D]4 } t j j t j j | |   } | j |  qaWq| j d  r| j d  r| j d    n g    xz   f d d   | j d  j   D D]M } t j j | j	 |  } | j |  | j | d  | j | d  qWqn?| j	 j |  r| j | j	  t j j t j j | j	  d  } | j | d |  n | r^t | d  } t j j | j   j    } | j   | | j	 k st d | |  j | j	 f   | j |  t j j t j j |  d  } | j | | j	  n3 | rx* t j  j! |  D] } | j |  qwWn  | j d  r5| j" d  r5x | j# d  D]o } t$ |  rt% } n t& } | j t j j | |   t' j( d k r| j t j j | |  d  qqWn  | j d  rJt) j*   } | j+ t, | j- d    | j. d  rJx | j/ d  D] \ } } t$ |  rt% } n t& } | j t j j | |   t' j( d k r| j t j j | |  d  | j t j j | |  d  | j t j j | |  d  qqWqJn  | j0 |  | |  _1 d S(   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   -Ni   u
   .dist-infou   -py%su    u   .eggu   installed-files.txtu   top_level.txtu   namespace_packages.txtc                s(   g  |  ] } | r |   k r |  q S(    (    (   u   .0u   p(   u
   namespaces(    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u0   InstallRequirement.uninstall.<locals>.<listcomp>u   .pyu   .pycu   easy-install.pthu   ./u   ru;   Egg-link %s does not match installed location of %s (at %s)u   scriptsu   win32u   .batu   entry_points.txtu   console_scriptsu   .exeu   .exe.manifestu
   -script.py(2   u   check_if_existsu   UninstallationErroru   nameu   satisfied_byu   conflicts_withu   UninstallPathSetu   osu   pathu   joinu   locationu   egg_nameu   splitu   replaceu   pkg_resourcesu   PY_MAJORu   egg_link_pathu   existsu   addu   has_metadatau   get_metadatau
   splitlinesu   normpathu   endswithu   dirnameu   add_pthu   openu   normcaseu   readlineu   stripu   closeu   AssertionErroru   pipu   wheelu   uninstallation_pathsu   metadata_isdiru   metadata_listdiru   dist_in_usersiteu   bin_useru   bin_pyu   sysu   platformu   ConfigParseru   SafeConfigParseru   readfpu   FakeFileu   get_metadata_linesu   has_sectionu   itemsu   removeu   uninstalled(   u   selfu   auto_confirmu   distu   paths_to_removeu   pip_egg_info_pathu   dist_info_pathu   debian_egg_info_pathu   easy_install_eggu   develop_egg_linku   pip_egg_info_existsu   debian_egg_info_existsu   dist_info_existsu   egg_info_pathu   installed_fileu   pathu   top_level_pkgu   easy_install_pthu   fhu   link_pointeru   scriptu   bin_diru   configu   nameu   value(    (   u
   namespacesu    /tmp/pip-zej_zi-build/pip/req.pyu	   uninstall  s    (	!	
.		*	  -u   InstallRequirement.uninstallc             C   s4   |  j  r |  j  j   n t j d |  j f  d  S(   Nu'   Can't rollback %s, nothing uninstalled.(   u   uninstalledu   rollbacku   loggeru   erroru   project_name(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   rollback_uninstallY  s    		u%   InstallRequirement.rollback_uninstallc             C   s4   |  j  r |  j  j   n t j d |  j f  d  S(   Nu%   Can't commit %s, nothing uninstalled.(   u   uninstalledu   commitu   loggeru   erroru   project_name(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   commit_uninstall`  s    		u#   InstallRequirement.commit_uninstallc             C   s  |  j  s t  d } d |  j |  j f } t j j | |  } t j j |  rt	 d t
 |  d  } | d k r d } q| d k r t j d t
 |   t j |  q| d k rt |  } t j d t
 |  t
 |  f  t j | |  qn  | rt j | d t j  } t j j t j j |  j    } xt j |  D] \ }	 }
 } d |
 k r~|
 j d  n  xl |
 D]d } t j j |	 |  } |  j | |  } t j |  j d	 | d	  } d | _ | j | d  qWxb | D]Z } | t k rqn  t j j |	 |  } |  j | |  } | j | |  j d	 |  qWqSW| j   t j d 8_ t j  d t
 |   n  d  S(   Nu	   %s-%s.zipu/   The file %s exists. (i)gnore, (w)ipe, (b)ackup u   iu   wu   bu   Deleting %su   Backing up %s to %su   pip-egg-infou   /i  i   u    i   u   Saved %sT(   u   iu   wu   bFi  (!   u
   source_diru   AssertionErroru   Trueu   nameu   installed_versionu   osu   pathu   joinu   existsu   ask_path_existsu   display_pathu   Falseu   loggeru   warnu   removeu
   backup_diru   shutilu   moveu   zipfileu   ZipFileu   ZIP_DEFLATEDu   normcaseu   abspathu   walku   _clean_zip_nameu   ZipInfou   external_attru   writestru   PIP_DELETE_MARKER_FILENAMEu   writeu   closeu   indentu   notify(   u   selfu	   build_diru   create_archiveu   archive_nameu   archive_pathu   responseu	   dest_fileu   zipu   diru   dirpathu   dirnamesu	   filenamesu   dirnameu   nameu   zipdiru   filename(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   archiveg  sN    		!	#
u   InstallRequirement.archivec             C   se   | j  | t j j  s/ t d | | f   | t |  d d   } | j t j j d  } | S(   Nu$   name %r doesn't start with prefix %ri   u   /(   u
   startswithu   osu   pathu   sepu   AssertionErroru   lenu   replace(   u   selfu   nameu   prefix(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _clean_zip_name  s
    u"   InstallRequirement._clean_zip_namec                s  |  j  r |  j | |  d  S|  j rz t j j |  j  } t j j | |  j  |  j	 |  j d   d | d |  _ d  St j d d  } t j j | d  } zt j g } | j d  | j d |  j  | t |  d d	 | g 7} |  j s| d
 g 7} n    d  k	 r&| d   g 7} n  |  j r?| d g 7} n | d g 7} t   r| d t j j t j d d d t    g 7} n  t j d |  j  t j d 7_ z* t | | d |  j d |  j  d d  Wd  t j d 8_ Xt j j" |  st j d |  d  Sd |  _ |  j r$d  S  f d d   }	 t# |  }
 xN |
 D]1 } | j$   } | j% d  rI|	 |  } PqIqIWt j& d |   d  S|
 j'   g  } t# |  }
 x[ |
 D]S } | j$   } t j j( |  r| t j j) 7} n  | j t* |	 |  |   qW|
 j'   t# t j j | d  d  }
 |
 j+ d j |  d  |
 j'   Wd  t j j" |  rt j, |  n  t j- |  Xd  S(!   Nu   rootu   strip_file_prefixu   -recordu   pip-u   install-record.txtu   -cu   import setuptools, tokenize;__file__=%r;exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))u   installu   --recordu#   --single-version-externally-managedu   --rootu	   --compileu   --no-compileu   --install-headersu   includeu   siteu   pythonu   Running setup.py install for %si   u   cwdu   filter_stdoutu   show_stdoutu   Record file %s not foundc                s4     d  k s t j j |   r# |  St   |   Sd  S(   N(   u   Noneu   osu   pathu   isabsu   change_root(   u   path(   u   root(    u    /tmp/pip-zej_zi-build/pip/req.pyu   prepend_root  s    u0   InstallRequirement.install.<locals>.prepend_rootu	   .egg-infou;   Could not find .egg-info directory in install record for %su   installed-files.txtu   wu   
TF(.   u   editableu   install_editableu   is_wheelu   pipu   wheelu   wheel_versionu
   source_diru   check_compatibilityu   nameu   move_wheel_filesu   Trueu   install_succeededu   tempfileu   mkdtempu   osu   pathu   joinu   sysu
   executableu   appendu   setup_pyu   listu   as_eggu   Noneu	   pycompileu   running_under_virtualenvu   prefixu   get_python_versionu   loggeru   notifyu   indentu   call_subprocessu   _filter_installu   Falseu   existsu   openu   stripu   endswithu   warnu   closeu   isdiru   sepu   make_path_relativeu   writeu   removeu   rmdir(   u   selfu   install_optionsu   global_optionsu   rootu   strip_file_prefixu   versionu   temp_locationu   record_filenameu   install_argsu   prepend_rootu   fu   lineu   egg_info_diru	   new_linesu   filename(    (   u   rootu    /tmp/pip-zej_zi-build/pip/req.pyu   install  s    									
 
u   InstallRequirement.installc             C   s   |  j  s t j j |  j  rW t j d |  j  |  j rK t |  j  n  d |  _ n  |  j
 r t j j |  j
  r t |  j
  n  d |  _
 d S(   uV   Remove the source files from this requirement, if they are marked
        for deletionu   Removing source in %sN(   u	   is_bundleu   osu   pathu   existsu   delete_marker_filenameu   loggeru   infou
   source_diru   rmtreeu   Noneu   _temp_build_dir(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   remove_temporary_source  s    	u*   InstallRequirement.remove_temporary_sourcec             C   s   t  j d |  j  t  j d 7_ zW t t j d d |  j g t |  d d g t |  d |  j	 d |  j
 d	 d
 Wd  t  j d 8_ Xd |  _ d  S(   Nu   Running setup.py develop for %si   u   -cu   import setuptools, tokenize; __file__=%r; exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))u   developu	   --no-depsu   cwdu   filter_stdoutu   show_stdoutFT(   u   loggeru   notifyu   nameu   indentu   call_subprocessu   sysu
   executableu   setup_pyu   listu
   source_diru   _filter_installu   Falseu   Trueu   install_succeeded(   u   selfu   install_optionsu   global_options(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   install_editable   s    7u#   InstallRequirement.install_editablec             C   sa   t  j } xK d d d d d d d d g D]+ } t j | | j    r( t  j } Pq( q( W| | f S(	   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$(   u   loggeru   NOTIFYu   reu   searchu   stripu   INFO(   u   selfu   lineu   levelu   regex(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _filter_install  s    		u"   InstallRequirement._filter_installc             C   s  |  j  d k r d SyJ |  j  j d k rG |  j rG |  j j d k rG d St j |  j   |  _ Wn t j	 k
 rx d SYn t j
 k
 rt j |  j  j  } |  j r t |  r | |  _ q t   r t |  r t d | j | j f   q n	 | |  _ Yn Xd S(   u   Find an installed distribution that satisfies or conflicts
        with this requirement, and set self.satisfied_by or
        self.conflicts_with appropriately.u
   setuptoolsu
   distributeuV   Will not install to the user site because it will lack sys.path precedence to %s in %sNFT(   u   requ   Noneu   Falseu   project_nameu   conflicts_withu   Trueu   pkg_resourcesu   get_distributionu   satisfied_byu   DistributionNotFoundu   VersionConflictu   use_user_siteu   dist_in_usersiteu   running_under_virtualenvu   dist_in_site_packagesu   InstallationErroru   location(   u   selfu   existing_dist(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   check_if_exists  s(    		u"   InstallRequirement.check_if_existsc             C   s   |  j  o d |  j  k S(   Nu   .whl(   u   url(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   is_wheel=  s    u   InstallRequirement.is_wheelc             C   su   |  j  d  k	 r |  j  S|  j } | s) d St j j t j j | d   ph t j j t j j | d   |  _  |  j  S(   Nu   pip-manifest.txtu   pyinstall-manifest.txtF(   u
   _is_bundleu   Noneu   _temp_build_diru   Falseu   osu   pathu   existsu   join(   u   selfu   base(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   is_bundleA  s    	!$u   InstallRequirement.is_bundlec       
      c   sG  x |  j  D] } t j j |  } x t j D] } d  } } t j j | | j  } t j j	 |  r, | j
 } t |  } | j   }	 | j   |   j |	  \ } } Pq, q, W| r d | | | f } n d  } t | |  d d d | d d d | d d Vq
 Wx= |  j D]2 } t j j |  } t | |  d | d d VqWd  S(	   Nu   %s+%s@%su   editableu   urlu   updateu
   source_diru   from_bundleTF(   u   _bundle_editable_dirsu   osu   pathu   basenameu   vcsu   backendsu   Noneu   joinu   bundle_fileu   existsu   nameu   openu   readu   closeu   parse_vcs_bundle_fileu   InstallRequirementu   Trueu   Falseu   _bundle_build_dirs(
   u   selfu   dest_diru   packageu   vcs_backendu   urlu   revu   vcs_bundle_fileu   vc_typeu   fpu   content(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   bundle_requirementsM  s,    
		
u&   InstallRequirement.bundle_requirementsc             C   s  |  j  } | s t  t j j | d  } t j j | d  } g  } g  } x#| | | f | | | f g D]\ } }	 }
 t j j |  rj x t j |  D] } t j j |	 |  } |
 j |  t j j |  r t j	 d | | |  f  q n  t j j |	  s(t j
 d |	  t j |	  n  t j t j j | |  |  q Wt j |  smt j |  qmqj qj Wd  |  _  | |  _ | |  _ d  S(   Nu   srcu   builduZ   The directory %s (containing package %s) already exists; cannot move source from bundle %su   Creating directory %s(   u   _temp_build_diru   AssertionErroru   osu   pathu   joinu   existsu   listdiru   appendu   loggeru   warnu   infou   makedirsu   shutilu   moveu   rmdiru   Noneu   _bundle_build_dirsu   _bundle_editable_dirs(   u   selfu   dest_build_diru   dest_src_diru   baseu   src_diru	   build_diru   bundle_build_dirsu   bundle_editable_dirsu
   source_diru   dest_diru   dir_collectionu   dirnameu   dest(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   move_bundle_filesg  s4    		#		u$   InstallRequirement.move_bundle_filesc             C   sA   t  |  j |  j | d |  j d |  j d | d |  j d | d  S(   Nu   useru   homeu   rootu	   pycompileu   strip_file_prefix(   u   move_wheel_filesu   nameu   requ   use_user_siteu
   target_diru	   pycompile(   u   selfu   wheeldiru   rootu   strip_file_prefix(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   move_wheel_files  s    			u#   InstallRequirement.move_wheel_filesc             C   s%   |  j  s t  t j j |  j  t  S(   N(   u
   source_diru   AssertionErroru   osu   pathu   joinu   PIP_DELETE_MARKER_FILENAME(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   delete_marker_filename  s    u)   InstallRequirement.delete_marker_filenameNFT(1   u   __name__u
   __module__u   __qualname__u   Noneu   Falseu   Trueu   __init__u   classmethodu   from_editableu	   from_lineu   __str__u	   from_pathu   build_locationu   correct_build_locationu   propertyu   nameu   url_nameu   setup_pyu   run_egg_infou   _run_setup_pyu   egg_info_datau   egg_info_pathu   egg_info_linesu   pkg_infou   dependency_linksu   reu   compileu   _requirements_section_reu   requirementsu   absolute_versionsu   installed_versionu   assert_source_matches_versionu   update_editableu	   uninstallu   rollback_uninstallu   commit_uninstallu   archiveu   _clean_zip_nameu   installu   remove_temporary_sourceu   install_editableu   _filter_installu   check_if_existsu   is_wheelu	   is_bundleu   bundle_requirementsu   move_bundle_filesu   move_wheel_filesu   delete_marker_filename(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   InstallRequirement?   sV   -*?*	n)]!
u   InstallRequirementc             B   sh   |  Ee  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d S(   u   Requirementsc             C   s   g  |  _  i  |  _ d  S(   N(   u   _keysu   _dict(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__  s    	u   Requirements.__init__c             C   s   |  j  S(   N(   u   _keys(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   keys  s    u   Requirements.keysc                s     f d d     j  D S(   Nc                s   g  |  ] }   j  |  q S(    (   u   _dict(   u   .0u   key(   u   self(    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u'   Requirements.values.<locals>.<listcomp>(   u   _keys(   u   self(    (   u   selfu    /tmp/pip-zej_zi-build/pip/req.pyu   values  s    u   Requirements.valuesc             C   s   | |  j  k S(   N(   u   _keys(   u   selfu   item(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __contains__  s    u   Requirements.__contains__c             C   s3   | |  j  k r" |  j  j |  n  | |  j | <d  S(   N(   u   _keysu   appendu   _dict(   u   selfu   keyu   value(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __setitem__  s    u   Requirements.__setitem__c             C   s   |  j  | S(   N(   u   _dict(   u   selfu   key(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __getitem__  s    u   Requirements.__getitem__c                s0     f d d     j    D } d d j |  S(   Nc                s0   g  |  ]& } d  t  |  t    |  f  q S(   u   %s: %s(   u   repr(   u   .0u   k(   u   self(    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u)   Requirements.__repr__.<locals>.<listcomp>u   Requirements({%s})u   , (   u   keysu   join(   u   selfu   values(    (   u   selfu    /tmp/pip-zej_zi-build/pip/req.pyu   __repr__  s    u   Requirements.__repr__N(
   u   __name__u
   __module__u   __qualname__u   __init__u   keysu   valuesu   __contains__u   __setitem__u   __getitem__u   __repr__(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   Requirements  s   u   Requirementsc             B   sF  |  Ee  Z d  Z d( d) d) d) d( d) d) d) d( d* d( d d  Z d d   Z d d   Z d d   Z	 e
 d	 d
    Z e
 d d    Z e
 d d    Z d d   Z d) d d  Z d d   Z d) d) d d  Z d) d d  Z d d   Z d d   Z d( d) d d  Z f  d d   Z d! d"   Z d# Z d$ d%   Z d& d'   Z d( S(+   u   RequirementSetc             C   s   | |  _  | |  _ | |  _ | r6 t j j |  } n  | |  _ | |  _ | |  _ |
 |  _	 t
   |  _ i  |  _ g  |  _ |	 |  _ g  |  _ g  |  _ g  |  _ | |  _ | |  _ | |  _ | p t   |  _ | |  _ | |  _ d  S(   N(   u	   build_diru   src_diru   download_diru   osu   pathu
   expanduseru   download_cacheu   upgradeu   ignore_installedu   force_reinstallu   Requirementsu   requirementsu   requirement_aliasesu   unnamed_requirementsu   ignore_dependenciesu   successfully_downloadedu   successfully_installedu   reqs_to_cleanupu   as_eggu   use_user_siteu
   target_diru
   PipSessionu   sessionu	   pycompileu   wheel_download_dir(   u   selfu	   build_diru   src_diru   download_diru   download_cacheu   upgradeu   ignore_installedu   as_eggu
   target_diru   ignore_dependenciesu   force_reinstallu   use_user_siteu   sessionu	   pycompileu   wheel_download_dir(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__  s,    																	u   RequirementSet.__init__c             C   sL   d d   |  j  j   D } | j d d d    d j d d   | D  S(   Nc             S   s   g  |  ] } | j  s |  q S(    (   u
   comes_from(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u*   RequirementSet.__str__.<locals>.<listcomp>u   keyc             S   s   |  j  j   S(   N(   u   nameu   lower(   u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   <lambda>  s    u(   RequirementSet.__str__.<locals>.<lambda>u    c             S   s   g  |  ] } t  | j   q S(    (   u   stru   req(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 (   u   requirementsu   valuesu   sortu   join(   u   selfu   reqs(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __str__  s    u   RequirementSet.__str__c             C   s   | j  } |  j | _ |  j | _ |  j | _ |  j | _ | sR |  j j |  ni |  j |  r t d | |  j	 |  | f   n  | |  j
 | <| j   | k r | |  j | j   <n  d  S(   Nu5   Double requirement given: %s (already in %s, name=%r)(   u   nameu   as_eggu   use_user_siteu
   target_diru	   pycompileu   unnamed_requirementsu   appendu   has_requirementu   InstallationErroru   get_requirementu   requirementsu   loweru   requirement_aliases(   u   selfu   install_requ   name(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   add_requirement  s    	u   RequirementSet.add_requirementc             C   sC   x< | | j    f D]( } | |  j k s7 | |  j k r d Sq Wd S(   NTF(   u   loweru   requirementsu   requirement_aliasesu   Trueu   False(   u   selfu   project_nameu   name(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   has_requirement  s    u   RequirementSet.has_requirementc             C   s   t  |  j j    p |  j S(   N(   u   listu   requirementsu   valuesu   unnamed_requirements(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   has_requirements  s    u   RequirementSet.has_requirementsc             C   sJ   t  d d   |  j j   D  r& d St  d d   |  j D  rF d Sd S(   Nc             s   s   |  ] } | j  Vq d  S(   N(   u   editable(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   <genexpr>  s    u/   RequirementSet.has_editables.<locals>.<genexpr>c             s   s   |  ] } | j  Vq d  S(   N(   u   editable(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   <genexpr>  s    TF(   u   anyu   requirementsu   valuesu   Trueu   unnamed_requirementsu   False(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   has_editables  s
    "u   RequirementSet.has_editablesc             C   sg   |  j  rc t j j |  j   |  _  t j j |  j   r: d St j d  t d t	 |  j     n  d S(   Nu!   Could not find download directoryu0   Could not find or access download directory '%s'TF(   u   download_diru   osu   pathu
   expanduseru   existsu   Trueu   loggeru   fatalu   InstallationErroru   display_pathu   False(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   is_download  s    	u   RequirementSet.is_downloadc             C   sl   xU | | j    f D]A } | |  j k r3 |  j | S| |  j k r |  j |  j | Sq Wt d |   d  S(   Nu   No project with the name %r(   u   loweru   requirementsu   requirement_aliasesu   KeyError(   u   selfu   project_nameu   name(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   get_requirement  s    u   RequirementSet.get_requirementc             C   s8   x1 |  j  j   D]  } | j d |  | j   q Wd  S(   Nu   auto_confirm(   u   requirementsu   valuesu	   uninstallu   commit_uninstall(   u   selfu   auto_confirmu   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   uninstall  s    u   RequirementSet.uninstallc             C   s  t  |  j  } t  |  j j    } xc| s3 | r| rK | j d  } n | j d  } d } |  j r | j r | j   | j	 r |  j
 r |  j o t | j	  s | j	 | _ n  d  | _	 q d } n  | j	 r t j d |  q n  | j r | j d  k rE| j |  j  | _ qEn% | rE| j |  j |  j  | _ n  | j d  k	 r' t j j | j  r' t d | | j f   q' q' Wd  S(   Ni    u<   Requirement already satisfied (use --upgrade to upgrade): %su   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?)TF(   u   listu   unnamed_requirementsu   requirementsu   valuesu   popu   Trueu   ignore_installedu   editableu   check_if_existsu   satisfied_byu   upgradeu   use_user_siteu   dist_in_usersiteu   conflicts_withu   Noneu   Falseu   loggeru   notifyu
   source_diru   build_locationu   src_diru	   build_diru   is_downloadu   osu   pathu   isdiru   InstallationError(   u   selfu   unnamedu   reqsu   req_to_installu   install_needed(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   locate_files  s4    
						%u   RequirementSet.locate_filesc          1   C   s  t  |  j  } t  |  j j    } x| s3 | r| rK | j d  } n | j d  } d } d } d }	 |  j r| j	 r| j
   | j r`|  j rW|  j r| j ry | j | |  j  }
 Wn? t k
 r d } d } Yqt k
 r
t j   d }	 YqX|
 j | _ n  | s]|  j o6t | j  sH| j | _ n  d | _ q]q`d } n  | j r| rt j d |  qt j d |  qn  | j	 rt j d |  n^ | r| j r| j j   j d  rt j d t t | j    qt j d |  n  t j d	 7_ zld } d } | j	 r| j d k ri| j |  j   } | | _ n	 | j } t! j" j# |  j$  st% |  j$  n  | j& |  j'  |  j' r| j(   | j) |  j*  q1| j(   nV| r1| j |  j$ |  j'  } d } d }
 | j+ rnWt! j" j# t! j" j, | d
   rUt- t. j/ d | | f    n| j d k r|	 rs|	  n  | j | d |  j }
 n t0 | j  }
 |
 st1  |
 rcyY |
 j2 j3 t4  r|  j5 r|  j5 } d } n |  j* } |  j' } |  j6 |
 | | |  Wqit7 k
 r_} z5 t j8 d | | f  t9 d | | |
 f   WYd d } ~ XqiXn d } | r1| j: } |
 o|
 j2 j3 t4  } | r| j; |  j$ |  j   x | j<   D]  } | j= |  |  j> |  qWn |  j' r3| | _ | s| j(   n  |
 r|
 j? t@ jA k r| j) |  j*  qny | rQ| | _ |
 j | _ n[ | | _ | j(   | r}| j( d d  n  | jB   | r| j r|  jC |  d } n  |  j s| j
   n  | j r.|  j s|  j r|  j ot | j  s| j | _ n  d | _ q+t j d |  d } q.q1n  | rt  tD jE |   d } | jF sx| jG   | _F |  j> |  n  |  jH sxd | jI | jJ  D]M } |  jK | jL  rqn  tM tN |  |  } | j= |  |  j> |  qWqn&| s| jO | jP  | jJ r*t j d d j, | jJ   n  |  jH sx | j | jJ  D] } y tD jQ jR |  jL } Wn? tS k
 rt j   d } t jT d | | | f  wFYn X|  jK |  rqFn  tM | |  } | j= |  |  j> |  qFWn  |  jK | jU  s|  j> |  qn  | sE|  j' s/| jV d k	 rE|  jW j= |  qEn  | r|  jX j= |  | r| j r| j j d  r|  jC |  qn  Wd t j d	 8_ Xq' Wd S(   uG   Prepare process. Create temp directories, download and/or unpack files.i    i   u"   Requirement already up-to-date: %su<   Requirement already satisfied (use --upgrade to upgrade): %su   Obtaining %su   file:u   Unpacking %su   Downloading/unpacking %si   u   setup.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.
                        u   upgradeu4   Could not install requirement %s because of error %suD   Could not install requirement %s because of HTTP error %s for URL %sNu   force_root_egg_infou!   Installing extra requirements: %ru   ,u.   Invalid requirement: %r (%s) in requirement %su   file:///TF(Y   u   listu   unnamed_requirementsu   requirementsu   valuesu   popu   Trueu   Falseu   Noneu   ignore_installedu   editableu   check_if_existsu   satisfied_byu   upgradeu   force_reinstallu   urlu   find_requirementu   BestVersionAlreadyInstalledu   DistributionNotFoundu   sysu   exc_infou   use_user_siteu   dist_in_usersiteu   conflicts_withu   loggeru   notifyu   loweru
   startswithu   display_pathu   url_to_pathu   indentu
   source_diru   build_locationu   src_diru   osu   pathu   existsu	   build_diru   _make_build_diru   update_editableu   is_downloadu   run_egg_infou   archiveu   download_diru   from_bundleu   joinu   PreviousBuildDirErroru   textwrapu   dedentu   Linku   AssertionErroru   filenameu   endswithu	   wheel_extu   wheel_download_diru
   unpack_urlu	   HTTPErroru   fatalu   InstallationErroru	   is_bundleu   move_bundle_filesu   bundle_requirementsu   appendu   add_requirementu   schemeu   vcsu   all_schemesu   assert_source_matches_versionu   copy_to_build_diru   pkg_resourcesu   find_distributionsu   requ   as_requirementu   ignore_dependenciesu   requiresu   extrasu   has_requirementu   project_nameu   InstallRequirementu   stru   add_dependency_linksu   dependency_linksu   Requirementu   parseu
   ValueErroru   erroru   nameu   _temp_build_diru   reqs_to_cleanupu   successfully_downloaded(   u   selfu   finderu   force_root_egg_infou   bundleu   unnamedu   reqsu   req_to_installu   installu   best_installedu	   not_foundu   urlu	   is_bundleu   is_wheelu   locationu   unpacku   download_diru   do_downloadu   excu   eu   subrequ   distu   requ   name(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   prepare_files:  sV   
		
					!#			
	!								)					

								 		!u   RequirementSet.prepare_filesc             C   s   t  j d  t  j d 7_ x |  j D] } | j   q& Wg  } |  j   r_ | j |  j  n  | rx | j |  j  n  x> | D]6 } t	 j
 j |  r t  j d |  t |  q q Wt  j d 8_ d S(   u   Clean up files, remove builds.u   Cleaning up...i   u   Removing temporary dir %s...N(   u   loggeru   notifyu   indentu   reqs_to_cleanupu   remove_temporary_sourceu   _pip_has_created_build_diru   appendu	   build_diru   src_diru   osu   pathu   existsu   infou   rmtree(   u   selfu   bundleu   requ
   remove_diru   dir(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   cleanup_files'  s    u   RequirementSet.cleanup_filesc             C   s1   |  j  t k o0 t j j t j j |  j  t   S(   N(   u	   build_diru   build_prefixu   osu   pathu   existsu   joinu   PIP_DELETE_MARKER_FILENAME(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _pip_has_created_build_dir>  s    u)   RequirementSet._pip_has_created_build_dirc             C   s   | j  r |  j p |  j } t j d | j | f  t j j | | j  } t	 j
 | j |  t d d | d g d | d d d  S(   Nu   Copying %s to %su   pythonu   %s/setup.pyu   cleanu   cwdu   command_descu   python setup.py clean(   u   editableu   src_diru	   build_diru   loggeru   infou   nameu   osu   pathu   joinu   shutilu   copytreeu
   source_diru   call_subprocess(   u   selfu   req_to_installu
   target_diru   dest(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   copy_to_build_dirB  s    u    RequirementSet.copy_to_build_dirc             C   s   | d  k r |  j } n  t |  rL | r3 | } n | } t | | |  na t |  r~ t | | |  | r t |  q n/ t | | |  j | |  j	  | r t |  n  d  S(   N(
   u   Noneu   download_diru
   is_vcs_urlu   unpack_vcs_linku   is_file_urlu   unpack_file_urlu   write_delete_marker_fileu   unpack_http_urlu   download_cacheu   session(   u   selfu   linku   locationu   download_diru   only_downloadu   loc(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   unpack_urlJ  s&    	
u   RequirementSet.unpack_urlc          "   O   s  d d   |  j  j   D } t j j d  } xI | D]A } | j d k r5 | j | k r5 | j |  | j |  q5 q5 W| r t	 j
 d d j d d   | D   n  t	 j d 7_ zCx<| D]4} | j d	 k r0y= t j j d
  }	 t j d  }
 |
 |	 k r|
 | _ n  Wq0t j k
 r,Yq0Xn  | j rt	 j
 d | j  t	 j d 7_ z | j d d  Wd t	 j d 8_ Xn  y | j | | | |  Wn+ | j r| j r| j   n    Yn  X| j r| j r| j   n  | j   q WWd t	 j d 8_ X| |  _ d S(   uR   Install everything in this set (after having downloaded and unpacked the packages)c             S   s   g  |  ] } | j  s |  q S(    (   u   satisfied_by(   u   .0u   r(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>k  s   	 u*   RequirementSet.install.<locals>.<listcomp>u   distribute>=0.7u
   distributeu!   Installing collected packages: %su   , c             S   s   g  |  ] } | j   q S(    (   u   name(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>{  s   	 i   u
   setuptoolsu   distribute<0.7u   Found existing installation: %su   auto_confirmNT(   u   requirementsu   valuesu   pkg_resourcesu   Requirementu   parseu   nameu   installed_versionu   removeu   appendu   loggeru   notifyu   joinu   indentu   get_distributionu   conflicts_withu   DistributionNotFoundu	   uninstallu   Trueu   installu   install_succeededu   rollback_uninstallu   commit_uninstallu   remove_temporary_sourceu   successfully_installed(   u   selfu   install_optionsu   global_optionsu   argsu   kwargsu
   to_installu   distribute_requ   requ   requirementu   distribute_requirementu   existing_distribute(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   installi  sJ    	*		u   RequirementSet.installc             C   s  t  j | d t  j  } g  } xJ|  j d f |  j d f f D]*\ } } t j j t j j |   } xt j	 |  D]\ } } } x t
 j D] }	 |	   }
 d  } } |
 j | k r xR | D] } | j |  r Pq q W|
 j t j j | |   \ } } | j |  |
 j } |
 j i | d 6| d 6} | j |
 j  Pq q Wd | k re| j d  n  xQ | D]I } t j j | |  } |  j | |  } | j | d | d d  qlWx_ | D]W } | t k rqn  t j j | |  } |  j | |  } | j | | d |  qW| rw t j j | |  } |  j | |  } | j | d | |  qw qw Wq= W| j d	 |  j    | j   d  S(
   Nu   wu   buildu   srcu   urlu   revu   pip-egg-infou   /u    u   pip-manifest.txt(   u   zipfileu   ZipFileu   ZIP_DEFLATEDu	   build_diru   src_diru   osu   pathu   normcaseu   abspathu   walku   vcsu   backendsu   Noneu   dirnameu
   startswithu   get_infou   joinu   appendu   bundle_fileu   guideu   removeu   _clean_zip_nameu   writestru   PIP_DELETE_MARKER_FILENAMEu   writeu   bundle_requirementsu   close(   u   selfu   bundle_filenameu   zipu   vcs_dirsu   diru   basenameu   dirpathu   dirnamesu	   filenamesu   backendu   vcs_backendu   vcs_urlu   vcs_revu   vcs_diru   vcs_bundle_fileu	   vcs_guideu   dirnameu   nameu   filename(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   create_bundle  sL    +	
	 #u   RequirementSet.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:
c             C   s   |  j  g } xA d d   |  j j   D D]# } | j d | j | j f  q) W| j d  xA d d   |  j j   D D]# } | j d | j | j f  qz Wd j |  S(   Nc             S   s   g  |  ] } | j  s |  q S(    (   u
   comes_from(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u6   RequirementSet.bundle_requirements.<locals>.<listcomp>u   %s==%s
uC   # These packages were installed to satisfy the above requirements:
c             S   s   g  |  ] } | j  r |  q S(    (   u
   comes_from(   u   .0u   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u    (   u   BUNDLE_HEADERu   requirementsu   valuesu   appendu   nameu   installed_versionu   join(   u   selfu   partsu   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   bundle_requirements  s    #!#!u"   RequirementSet.bundle_requirementsc             C   se   | j  | t j j  s/ t d | | f   | t |  d d   } | j t j j d  } | S(   Nu$   name %r doesn't start with prefix %ri   u   /(   u
   startswithu   osu   pathu   sepu   AssertionErroru   lenu   replace(   u   selfu   nameu   prefix(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _clean_zip_name  s
    u   RequirementSet._clean_zip_nameNFT(   u   __name__u
   __module__u   __qualname__u   Noneu   Falseu   Trueu   __init__u   __str__u   add_requirementu   has_requirementu   propertyu   has_requirementsu   has_editablesu   is_downloadu   get_requirementu	   uninstallu   locate_filesu   prepare_filesu   cleanup_filesu   _pip_has_created_build_diru   copy_to_build_diru
   unpack_urlu   installu   create_bundleu   BUNDLE_HEADERu   bundle_requirementsu   _clean_zip_name(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   RequirementSet  s2   		'E7u   RequirementSetc             C   s   t  j |   t |   d  S(   N(   u   osu   makedirsu   write_delete_marker_file(   u	   build_dir(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _make_build_dir  s    u   _make_build_diru   ^(http|https|file):c             c   s  | d  k r t   } n  d  } | r- | j n d  } | rK t j |  } n  t j j t j j |    } t	 |  d | d | \ }  } xzt
 | j    D]f\ }	 }
 |	 d 7}	 |
 j   }
 t j d d |
  }
 |
 s |
 j d  r q n  | r| j |
  rq n  |
 j d  s&|
 j d  r|
 j d  rN|
 d	 d   j   } n% |
 t d  d   j   j d
  } t j |   rt j |  |  } n3 t j |  st j j t j j |   |  } n  x3t | | d |  d | d | D] } | VqWq |
 j d  s |
 j d  rq |
 j d  s=|
 j d  r|
 j d  re|
 d	 d   j   }
 n% |
 t d  d   j   j d
  }
 t j j | |
  } t j j |  r| }
 n  | r | j j |
  q q |
 j d  s|
 j d  rY|
 j d  r|
 d	 d   j   }
 n% |
 t d  d   j   j d
  }
 | r |
 g | _ q q |
 j d  r|
 t d  d   j   j d
  }
 | r | j j |
  q q |
 j d  rd! | _ q |
 j d  rg  | _ q |
 j d  r:|
 t d  d   j   j d
  }
 | j t t |
  j    g  O_ q |
 j d  rUd! | _! q |
 j d  rgq |
 j d  ryq |
 j d  r|
 t d  d   j   j d
  }
 | j" t t |
  j    g  O_" q |
 j d  r/|
 t d  d   j   j d
  }
 | j" t t |
  j    g  O_" q d |  |	 f } |
 j d  s]|
 j d  r|
 j d  r|
 d	 d   j   }
 n% |
 t d  d   j   j d
  }
 t# j$ |
 d | d | r| j% n d  } n$ t# j& |
 | d t' | d  d   } | Vq Wd  S("   Nu
   comes_fromu   sessioni   u
   (^|\s)#.*$u    u   #u   -ru   --requirementi   u   =u   optionsu   -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   prereleasesu   preT((   u   Noneu
   PipSessionu   skip_requirements_regexu   reu   compileu   osu   pathu   dirnameu   abspathu   get_file_contentu	   enumerateu
   splitlinesu   stripu   subu
   startswithu   searchu   lenu
   _scheme_reu   urlparseu   urljoinu   joinu   parse_requirementsu   lstripu   existsu
   find_linksu   appendu
   index_urlsu   Trueu	   use_wheelu   allow_externalu   setu   normalize_nameu   loweru   allow_all_externalu   allow_unverifiedu   InstallRequirementu   from_editableu   default_vcsu	   from_lineu   getattr(   u   filenameu   finderu
   comes_fromu   optionsu   sessionu
   skip_matchu
   skip_regexu   reqs_file_diru   contentu   line_numberu   lineu   req_urlu   itemu   relative_to_reqs_fileu   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   parse_requirements  s    	
%$(%	%%%'%'%'%'$u   parse_requirementsc             C   s.   t  j d |   } | r* | j d  }  n  |  S(   u2   
        Strip req postfix ( -dev, 0.2, etc )
    u   ^(.*?)(?:-dev|-\d.*)$i   (   u   reu   searchu   group(   u   requ   match(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _strip_postfixg  s    u   _strip_postfixc             C   sp   d d   |  j  d d  d j  d  D } d  } | d d k rO | d } n | d d k rl | d } n  | S(   Nc             S   s   g  |  ] } | r |  q S(    (    (   u   .0u   p(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>t  s   	 u'   _build_req_from_url.<locals>.<listcomp>u   #i   i    u   /i   u   tagsu   branchesu   tagu   branchi   u   trunki(   u   tagsu   branchesu   tagu   branchiii(   u   splitu   None(   u   urlu   partsu   req(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _build_req_from_urlr  s    ,u   _build_req_from_urlc             C   s{   t  j d  } | j |   } | rw t   } xC | D]; } | \ } } | | k re t d |   n  | | | <q4 W| Sd S(   uz   
        This method generates a dictionary of the query string
        parameters contained in a given editable URL.
    u(   [\?#&](?P<name>[^&=]+)=(?P<value>[^&=]+)u   %s option already definedN(   u   reu   compileu   findallu   dictu	   Exceptionu   None(   u   requ   regexpu   matchedu   retu   optionu   nameu   value(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _build_editable_options}  s    	u   _build_editable_optionsc             C   sm  |  } d } t j d |  } | rE | j d  } | j d  } n | } t j j |  r t j j t j j | d   s t	 d |   n  t
 |  } n  | j   j d  r | r d | t j j d |  j f Sd | d f Sn  x; t D]3 } | j   j d |  r d	 | | f } Pq q Wd
 | k r_| rL| d
 | } q_t	 d |    n  | j d
 d  d j   } t j |  sd |  d j d d   t j D  d } t	 |   n  y t |   }	 Wn8 t k
 rt j   d }
 t	 d |  |
 f   Yn X|	 s"d |	 k rJt |   } | sTt	 d |    qTn
 |	 d } t |  } | | |	 f S(   uS   Parses svn+http://blahblah@rev#egg=Foobar into a requirement
    (Foobar) and a URLu   ^(.+)(\[[^\]]+\])$i   i   u   setup.pyu;   Directory %r is not installable. File 'setup.py' not found.u   file: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+i    u   For --editable=%s only u   , c             S   s   g  |  ] } | j  d   q S(   u   +URL(   u   name(   u   .0u   backend(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>  s   	 u"   parse_editable.<locals>.<listcomp>u    is currently supportedu*   --editable=%s error in editable options:%su   eggu@   --editable=%s is not the right format; it must have #egg=PackageN(   u   Noneu   reu   matchu   groupu   osu   pathu   isdiru   existsu   joinu   InstallationErroru   path_to_urlu   loweru
   startswithu   pkg_resourcesu   Requirementu   parseu   extrasu   vcsu   splitu   get_backendu   backendsu   _build_editable_optionsu	   Exceptionu   sysu   exc_infou   _build_req_from_urlu   _strip_postfix(   u   editable_requ   default_vcsu   urlu   extrasu   mu   url_no_extrasu   version_controlu   vc_typeu   error_messageu   optionsu   messageu   requ   package(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   parse_editable  sT    ! $
u   parse_editablec             B   s   |  Ee  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d d   Z
 d d d  Z d d   Z d d   Z d S(   u   UninstallPathSetuM   A set of file paths to be removed in the uninstallation of a
    requirement.c             C   s@   t    |  _ t    |  _ i  |  _ | |  _ d  |  _ g  |  _ d  S(   N(   u   setu   pathsu   _refuseu   pthu   distu   Noneu   save_diru   _moved_paths(   u   selfu   dist(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__  s    			u   UninstallPathSet.__init__c             C   s
   t  |  S(   us   
        Return True if the given path is one we are permitted to
        remove/modify, False otherwise.

        (   u   is_local(   u   selfu   path(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu
   _permitted  s    u   UninstallPathSet._permittedc             C   sF   t  |  j  sB t j d |  j j t |  j j  t j f  d Sd S(   Nu1   Not uninstalling %s at %s, outside environment %sFT(   u   dist_is_localu   distu   loggeru   notifyu   project_nameu   normalize_pathu   locationu   sysu   prefixu   Falseu   True(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _can_uninstall  s
    	&u   UninstallPathSet._can_uninstallc             C   s   t  |  } t j j |  s" d  S|  j |  rD |  j j |  n |  j j |  t j j |  d d k r t	 r |  j t
 j |   n  d  S(   Ni   u   .py(   u   normalize_pathu   osu   pathu   existsu
   _permittedu   pathsu   addu   _refuseu   splitextu   uses_pycacheu   impu   cache_from_source(   u   selfu   path(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   add  s    "u   UninstallPathSet.addc             C   sk   t  |  } |  j |  rW | |  j k r@ t |  |  j | <n  |  j | j |  n |  j j |  d  S(   N(   u   normalize_pathu
   _permittedu   pthu   UninstallPthEntriesu   addu   _refuse(   u   selfu   pth_fileu   entry(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   add_pth  s    u   UninstallPathSet.add_pthc                sY   t    } xI t | d t D]5   t   f d d   | D  s | j    q q W| S(   u   Compact a path set to contain the minimal number of paths
        necessary to contain all paths in the set. If /a/path/ and
        /a/path/to/a/file.txt are both in the set, leave only the
        shorter path.u   keyc                sJ   g  |  ]@ }   j  |  oC   t | j t j j   t j j k  q S(    (   u
   startswithu   lenu   rstripu   osu   pathu   sep(   u   .0u	   shortpath(   u   path(    u    /tmp/pip-zej_zi-build/pip/req.pyu
   <listcomp>
  s   	u,   UninstallPathSet.compact.<locals>.<listcomp>(   u   setu   sortedu   lenu   anyu   add(   u   selfu   pathsu   short_paths(    (   u   pathu    /tmp/pip-zej_zi-build/pip/req.pyu   compact  s    	u   UninstallPathSet.compactc             C   s5   t  j j |  j t  j j |  d j t  j j   S(   Ni   (   u   osu   pathu   joinu   save_diru
   splitdriveu   lstripu   sep(   u   selfu   path(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   _stash  s    	u   UninstallPathSet._stashc             C   s  |  j    s d S|  j s4 t j d |  j j  d St j d |  j j  t j d 7_ t |  j |  j   } z6| r d } n- x | D] } t j |  q Wt	 d d  } |  j
 r t j d  x* |  j |  j
  D] } t j |  q Wn  | d k rt j d	 d
 d d  |  _ xK | D]C } |  j |  } t j d |  |  j j |  t | |  q"Wx! |  j j   D] } | j   qyWt j d |  j j  n  Wd t j d 8_ Xd S(   u[   Remove paths in ``self.paths`` with confirmation (unless
        ``auto_confirm`` is True).Nu7   Can't uninstall '%s'. No files were found to uninstall.u   Uninstalling %s:i   u   yu   Proceed (y/n)? u   nu.   Not removing or modifying (outside of prefix):u   suffixu
   -uninstallu   prefixu   pip-u   Removing file or directory %su   Successfully uninstalled %s(   u   yu   n(   u   _can_uninstallu   pathsu   loggeru   notifyu   distu   project_nameu   indentu   sortedu   compactu   asku   _refuseu   tempfileu   mkdtempu   save_diru   _stashu   infou   _moved_pathsu   appendu   renamesu   pthu   valuesu   remove(   u   selfu   auto_confirmu   pathsu   responseu   pathu   new_pathu   pth(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   remove  s<    			u   UninstallPathSet.removec             C   s   |  j  d k r* t j d |  j j  d St j d |  j j  x> |  j D]3 } |  j	 |  } t j
 d |  t | |  qK Wx |  j D] } | j   q Wd S(   u1   Rollback the changes previously made by remove().u'   Can't roll back %s; was not uninstalledu   Rolling back uninstall of %su   Replacing %sNF(   u   save_diru   Noneu   loggeru   erroru   distu   project_nameu   Falseu   notifyu   _moved_pathsu   _stashu   infou   renamesu   pthu   rollback(   u   selfu   pathu   tmp_pathu   pth(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   rollback9  s    u   UninstallPathSet.rollbackc             C   s5   |  j  d k	 r1 t |  j   d |  _  g  |  _ n  d S(   u?   Remove temporary save dir: rollback will no longer be possible.N(   u   save_diru   Noneu   rmtreeu   _moved_paths(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   commitF  s    	u   UninstallPathSet.commitNF(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u
   _permittedu   _can_uninstallu   addu   add_pthu   compactu   _stashu   Falseu   removeu   rollbacku   commit(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   UninstallPathSet  s   	%u   UninstallPathSetc             B   sD   |  Ee  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S(
   u   UninstallPthEntriesc             C   sG   t  j j |  s% t d |   n  | |  _ t   |  _ d  |  _ d  S(   Nu.   Cannot remove entries from nonexistent file %s(	   u   osu   pathu   isfileu   UninstallationErroru   fileu   setu   entriesu   Noneu   _saved_lines(   u   selfu   pth_file(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__O  s
    	u   UninstallPthEntries.__init__c             C   sa   t  j j |  } t j d k rM t  j j |  d rM | j d d  } n  |  j j |  d  S(   Nu   win32i    u   \u   /(	   u   osu   pathu   normcaseu   sysu   platformu
   splitdriveu   replaceu   entriesu   add(   u   selfu   entry(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   addV  s    &u   UninstallPthEntries.addc             C   s   t  j d |  j  t |  j d  } | j   } | |  _ | j   t d d   | D  rg d } n d } xR |  j D]G } y, t  j d |  | j	 t
 | |   Wqw t k
 r Yqw Xqw Wt |  j d  } | j |  | j   d  S(	   Nu   Removing pth entries from %s:u   rbc             s   s!   |  ] } t  d   | k Vq d S(   u   
N(   u   b(   u   .0u   line(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   <genexpr>g  s    u-   UninstallPthEntries.remove.<locals>.<genexpr>u   
u   
u   Removing entry: %su   wb(   u   loggeru   infou   fileu   openu	   readlinesu   _saved_linesu   closeu   anyu   entriesu   removeu   bu
   ValueErroru
   writelines(   u   selfu   fhu   linesu   endlineu   entry(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   remove`  s"    	
		u   UninstallPthEntries.removec             C   sk   |  j  d  k r' t j d |  j  d St j d |  j  t |  j d  } | j |  j   | j	   d S(   Nu.   Cannot roll back changes to %s, none were madeu!   Rolling %s back to previous stateu   wbFT(   u   _saved_linesu   Noneu   loggeru   erroru   fileu   Falseu   infou   openu
   writelinesu   closeu   True(   u   selfu   fh(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   rollbacku  s    
u   UninstallPthEntries.rollbackN(   u   __name__u
   __module__u   __qualname__u   __init__u   addu   removeu   rollback(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   UninstallPthEntriesN  s   
u   UninstallPthEntriesc             B   s>   |  Ee  Z d  Z d Z d d   Z d d   Z d d   Z d S(	   u   FakeFileuQ   Wrap a list of lines in an object with readline() to make
    ConfigParser happy.c             C   s   d d   | D |  _  d  S(   Nc             s   s   |  ] } | Vq d  S(   N(    (   u   .0u   l(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu	   <genexpr>  s    u$   FakeFile.__init__.<locals>.<genexpr>(   u   _gen(   u   selfu   lines(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __init__  s    u   FakeFile.__init__c             C   sT   y7 y t  |  j  SWn t k
 r5 |  j j    SYn XWn t k
 rO d SYn Xd  S(   Nu    (   u   nextu   _genu	   NameErroru   StopIteration(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   readline  s    u   FakeFile.readlinec             C   s   |  j  S(   N(   u   _gen(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   __iter__  s    u   FakeFile.__iter__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   readlineu   __iter__(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   FakeFile  s   	u   FakeFile(c   u   email.parseru
   FeedParseru   osu   impu   localeu   reu   sysu   shutilu   tempfileu   textwrapu   zipfileu   distutils.utilu   change_rootu   pip.locationsu   bin_pyu   running_under_virtualenvu   PIP_DELETE_MARKER_FILENAMEu   write_delete_marker_fileu   bin_useru   pip.exceptionsu   InstallationErroru   UninstallationErroru   UnsupportedWheelu   BestVersionAlreadyInstalledu   InvalidWheelFilenameu   DistributionNotFoundu   PreviousBuildDirErroru   pip.vcsu   vcsu   pip.logu   loggeru   pip.utilu   display_pathu   rmtreeu   asku   ask_path_existsu
   backup_diru   is_installable_diru   is_localu   dist_is_localu   dist_in_usersiteu   dist_in_site_packagesu   renamesu   normalize_pathu   egg_link_pathu   make_path_relativeu   call_subprocessu   is_prereleaseu   normalize_nameu   pip.backwardcompatu   urlparseu   urllibu   uses_pycacheu   ConfigParseru   string_typesu	   HTTPErroru   get_python_versionu   bu	   pip.indexu   Linku   build_prefixu   pip.downloadu
   PipSessionu   get_file_contentu   is_urlu   url_to_pathu   path_to_urlu   is_archive_fileu   unpack_vcs_linku
   is_vcs_urlu   is_file_urlu   unpack_file_urlu   unpack_http_urlu	   pip.wheelu   pipu   move_wheel_filesu   Wheelu	   wheel_extu   pip._vendoru   pkg_resourcesu   sixu   read_text_fileu   objectu   InstallRequirementu   Requirementsu   RequirementSetu   _make_build_diru   compileu   Iu
   _scheme_reu   Noneu   parse_requirementsu   _strip_postfixu   _build_req_from_urlu   _build_editable_optionsu   parse_editableu   UninstallPathSetu   UninstallPthEntriesu   FakeFile(    (    (    u    /tmp/pip-zej_zi-build/pip/req.pyu   <module>   sT   (4p:L   W  N	cA|2