
[Y$                 @   sh  d  d l  Z  d  d l Z d  d l Z d  d l Z d  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   Z d d d  Z  d d   Z! Gd d   d e"  Z# e$ d k rde    Z% e% rde j% e%  qdn  d S)    N)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_WORDS   
COMP_CWORD c             S   s   g  |  ] \ } } |  q S r   ).0cmdsummaryr   r   8/home/kubikplay/www/django_dtb/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   E   s   	c             S   s#   g  |  ] } | j  d   d  q S)=r   )split)r   xr   r   r   r   J   s   	 c                s.   g  |  ]$ \ } } |   k r | | f  q Sr   r   )r   r)   v)	prev_optsr   r   r   K   s   	 c                s1   g  |  ]' \ } } | j     r | | f  q Sr   )
startswith)r   kr*   )currentr   r   r   M   s   	 r'   z--c             S   s   g  |  ] } | j   q Sr   )option_list)r   ir   r   r   r   W   s   	 c             s   s"   |  ] } | D] } | Vq q d  S)Nr   )r   itor   r   r   	<genexpr>Y   s    zautocomplete.<locals>.<genexpr>c             S   s.   g  |  ]$ } | j  t j k r | j    q Sr   )r   r"   r#   r$   )r   r0   r   r   r   r   [   s   	  c                s%   g  |  ] } | j     r |  q Sr   )r,   )r   r)   )r.   r   r   r   ^   s   	 )osenvironr(   int
IndexErrorr   create_main_parsersysexitr,   lowerr   keyappendprintr   parseroption_list_alloption_groupsr/   join)cwordscwordoptionssubcommand_namer@   	installedlcdist
subcommandoption	opt_labeloptsr   )r.   r+   r   r   autocomplete   s\    !	+!

&rO   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   r0   jr   r   r   r   z   s   	 z&create_main_parser.<locals>.<listcomp>
)r   r   r   disable_interspersed_argsr5   pathdirnameabspath__file____version__r:   version
cmdoptionsmake_option_groupgeneral_groupadd_option_groupmainr   rC   description)	parser_kwr@   pip_pkg_dirgen_optscommand_summariesre   r   r   r   r9   b   s$    

* 		r9   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 - )r9   
parse_argsr_   r:   stdoutwriter5   linesepr;   len
print_helpr<   remover   r   r>   r   rC   )argsr@   general_options	args_elsecmd_namecmd_argsguessmsgr   r   r   	parseopts   s&    			)
rx   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:   argvrO   rx   r   exc_infostderrrl   r5   rm   r;   r   rd   )initial_argsrt   ru   ecommandr   r   r   rd      s    rd   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   ImportErrorr>   rd   r:   ry   )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)rT   reqeditablecomments)selfrT   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 locationFz==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)r5   rZ   normcaser\   locationpip.vcsr   r   get_backend_namer   r:   rz   r   warnr>   as_requirementspecsrn   AssertionError_rev_research_date_reget_backendget_locationgroupegg_nameproject_name)clsrJ   dependency_links	find_tagsr   r   r   r   r   r   exr   r_   	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)rJ   rT   matchr   r   r   r     s
    zFrozenRequirement.egg_namec             C   sF   |  j  } |  j r d | } n  d j t |  j  t |  g  d S)Nz-e %srX   )r   r   rC   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__)&r5   r"   r:   r   pip.exceptionsr   r   r   pip.logr   pip.utilr   r   r   r   r	   r
   r   pip.baseparserr   r   pip.commandsr   r   r   Zpip.cmdoptionsr   r`   r^   rO   r9   rx   rd   r   objectr   r   r;   r   r   r   r   <module>   s,   "	I*G	