<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
7’Re)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   branchiýÿÿÿiÿÿÿÿiþÿÿÿ(   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