
 X,                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z e e d d  Z e e d d  Z e d k r e d k r d Z q e j	 e k s t
  d Z n] e j	 e k r d Z nE e d k r e j	 e k s t
  d Z n e e j	 k s t
  d Z e r e  j j e j	 d d  Z n d Z y_ xX e  j e  D]G Z e  j j e  d	 d
 k r9e j j d  e  j j e e   q9q9WWn= e k
 rZ z e j e j k r  n  WYd d Z [ Xn Xd  d l m Z m Z m Z d  d l m Z d  d l m Z m Z d  d l m Z m  Z  m! Z! m" Z" d  d l# m$ Z$ m% Z% d  d l& m' Z' m( Z( m) Z) d  d l* Z+ e+ j, Z, d Z- d d   Z. d d   Z/ d d   Z0 d d d  Z1 d d   Z2 Gd d   d e3  Z4 e5 d k re1   Z6 e6 re j6 e6  qn  d S)    Nbase_prefixreal_prefixFTlibzpython-wheelsz/usr/share/python-wheels   z.whl)InstallationErrorCommandErrorPipError)logger)get_installed_distributionsget_prog)git	mercurial
subversionbazaar)ConfigOptionParserUpdatingDefaultsHelpFormatter)commandsget_summariesget_similar_commandsz1.5.4c                 s  d t  j k r d St  j d j   d d  }  t t  j d  } y |  | d   Wn t k
 ro d   Yn Xd d   t   D  g  } y!  f d	 d   |  D d
 } Wn t k
 r d } Yn Xt   } | ri| d k r t j d  n  | d k r  j	 d  rg  }   j
   } xU t d d  D]D } | j j	 |  r1| j |  d d  k r1| j | j  q1q1W| rx | D] } t |  qWt j d  qn  t |   } | d d   | j j D 7} d d   |  d | d  D   f d d   | D }   f d d   | D } x | D]1 }	 |	 d
 }
 |	 d rX|
 d 7}
 n  t |
  q1Wn   j	 d  s  j	 d  rd d   | j D } | j | j  d d   | D }  d d   | D 7 n  t d j   f d d    D   t j d  d S)zCommand and option completion for the main option parser (and options)
    and its subcommands (and options).

    Enable by sourcing one of the completion shell scripts (bash or zsh).
    PIP_AUTO_COMPLETEN
COMP_WORDSr   
COMP_CWORD c             S   s   g  |  ] \ } } |  q S r   ).0cmdsummaryr   r   7/home/ubuntu/projects/ifolica/build/pip/pip/__init__.py
<listcomp>[   s   	 z autocomplete.<locals>.<listcomp>c                s"   g  |  ] } |   k r |  q Sr   r   )r   w)subcommandsr   r   r   _   s   	 r   help	uninstall-
local_onlyTc             S   s7   g  |  ]- } | j  t j k r | j   | j f  q Sr   )r!   optparseSUPPRESS_HELPget_opt_stringnargs)r   optr   r   r   r   w   s   	c             S   s#   g  |  ] } | j  d   d  q S)=r   )split)r   xr   r   r   r   |   s   	 c                s.   g  |  ]$ \ } } |   k r | | f  q Sr   r   )r   r,   v)	prev_optsr   r   r   }   s   	 c                s1   g  |  ]' \ } } | j     r | | f  q Sr   )
startswith)r   kr-   )currentr   r   r      s   	 r*   z--c             S   s   g  |  ] } | j   q Sr   )option_list)r   ir   r   r   r      s   	 c             s   s"   |  ] } | D] } | Vq q d  S)Nr   )r   itor   r   r   	<genexpr>   s    zautocomplete.<locals>.<genexpr>c             S   s.   g  |  ]$ } | j  t j k r | j    q Sr   )r!   r%   r&   r'   )r   r3   r   r   r   r      s   	  c                s%   g  |  ] } | j     r |  q Sr   )r/   )r   r,   )r1   r   r   r      s   	 )osenvironr+   int
IndexErrorr   create_main_parsersysexitr/   lowerr
   keyappendprintr   parseroption_list_alloption_groupsr2   join)cwordscwordoptionssubcommand_namerC   	installedlcdist
subcommandoption	opt_labeloptsr   )r1   r.   r    r   autocompleteK   s\    !	+!

&rR   c              C   s   i d d 6d d 6t    d 6d d 6t   d 6}  t |    } | j   t j j t j j t j j t    } d	 t	 | t
 j d  d
  f | _ t j t j |  } | j |  d | _ t   } d g d d   | D } d j |  | _ | S)Nz
%prog <command> [options]usageFadd_help_option	formatterglobalnameprogzpip %s from %s (python %s)   Tr   c             S   s&   g  |  ] \ } } d  | | f  q S)z%-27s %sr   )r   r3   jr   r   r   r      s   	 z&create_main_parser.<locals>.<listcomp>
)r   r   r   disable_interspersed_argsr8   pathdirnameabspath__file____version__r=   version
cmdoptionsmake_option_groupgeneral_groupadd_option_groupmainr   rF   description)	parser_kwrC   pip_pkg_dirgen_optscommand_summariesrh   r   r   r   r<      s$    

* 		r<   c             C   s2  t    } | j |   \ } } | j rZ t j j | j  t j j t j  t j   n  | s | d d k r t	 |  d k r | j
   t j   n  | d j   } |  d  d   } | j | d j    | t k r(t |  } d | g } | r| j d |  n  t d j |    n  | | f S)Nr   r!   r   zunknown command "%s"zmaybe you meant "%s"z - )r<   
parse_argsrb   r=   stdoutwriter8   linesepr>   len
print_helpr?   remover   r   rA   r   rF   )argsrC   general_options	args_elsecmd_namecmd_argsguessmsgr   r   r   	parseopts   s&    			)
r{   c             C   s   |  d  k r" t  j d d   }  n  t   y t |   \ } } WnV t k
 r t  j   d } t  j j d |  t  j j t j	  t  j
 d  Yn Xt |   } | j |  S)Nr   z	ERROR: %s)r=   argvrR   r{   r   exc_infostderrro   r8   rp   r>   r   rg   )initial_argsrw   rx   ecommandr   r   r   rg      s    rg   c              C   s`   d g }  y d d l  } Wn t k
 r: |  j d  Yn Xt d d g |  t j d d   S)zI
    Bootstrapping function to be called from install-pip.py script.
    pipr   N
setuptoolsinstallz	--upgrader   )r   ImportErrorrA   rg   r=   r|   )pkgsr   r   r   r   	bootstrap   s    	r   c               @   sp   e  Z d  Z f  d d  Z e j d  Z e j d  Z e d d d   Z	 e
 d d	    Z d
 d   Z d S)FrozenRequirementc             C   s(   | |  _  | |  _ | |  _ | |  _ d  S)N)rW   reqeditablecomments)selfrW   r   r   r   r   r   r   __init__   s    			zFrozenRequirement.__init__z-r(\d+)$z-(20\d\d\d\d\d\d)$Fc             C   s6  t  j j t  j j | j   } g  } d d l m } m } | j |  r d } y | | | |  }	 Wn9 t	 k
 r t
 j   d }
 t j d |
  d  }	 Yn X|	 d  k r t j d |  | j d  | j   }	 d } q n:d } | j   }	 |	 j } t |  d k r'| d d d k s-t  | d d } |  j j |  } |  j j |  } | sk| r | j d  } | r|   j | |  } n  | st j d |	  | j d  q | j d |	  | r| j d  } n d | j d  } d } d | | |  j |  f }	 n  |  | j |	 | |  S)Nr   )vcsget_src_requirementTr   zYError when trying to get requirement for VCS system %s, falling back to uneditable formatz-Could not determine repository location of %sz-## !! Could not determine repository locationF=====svnz(Warning: cannot find svn location for %szF## FIXME: could not find svn URL in dependency_links for this package:z3# Installing as editable to satisfy requirement %s:z{%s}z%s@%s#egg=%s)r   r   )r8   r]   normcaser_   locationpip.vcsr   r   get_backend_namer   r=   r}   r	   warnrA   as_requirementspecsrq   AssertionError_rev_research_date_reget_backendget_locationgroupegg_nameproject_name)clsrM   dependency_links	find_tagsr   r   r   r   r   r   exr   rb   	ver_match
date_matchsvn_backendsvn_locationrevr   r   r   	from_dist  sN    !	,	zFrozenRequirement.from_distc             C   sA   |  j    } t j d |  } | r= | d  | j    } n  | S)Nz
-py\d\.\d$)r   rer   start)rM   rW   matchr   r   r   r   5  s
    zFrozenRequirement.egg_namec             C   sF   |  j  } |  j r d | } n  d j t |  j  t |  g  d S)Nz-e %sr[   )r   r   rF   listr   str)r   r   r   r   r   __str__=  s    		zFrozenRequirement.__str__N)__name__
__module____qualname__r   r   compiler   r   classmethodr   staticmethodr   r   r   r   r   r   r      s   ,r   __main__)7r8   r%   r=   r   errnogetattrr   r   in_venvprefixr   r]   rF   	wheel_dirlistdirfilenamesplitextinsertOSErrorerrorENOENTpip.exceptionsr   r   r   pip.logr	   pip.utilr
   r   r   r   r   r   r   pip.baseparserr   r   pip.commandsr   r   r   Zpip.cmdoptionsr   rc   ra   rR   r<   r{   rg   r   objectr   r   r>   r   r   r   r   <module>   s^   				-"	I*G	