ó
€
\c           @   s>  d  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 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 d d l m Z m Z m Z m Z d d	 l m Z d
 g Z e j Z d
 e  f d „  ƒ  YZ! d d „ Z# d d „ Z$ d S(   s(   Base Command class, and related routinesiÿÿÿÿN(   t   logger(   t   urlopen(   t
   BadCommandt   InstallationErrort   UninstallationErrort   CommandError(   t   StringIOt   ssl(   t   ConfigOptionParsert   UpdatingDefaultsHelpFormatter(   t   SUCCESSt   ERRORt   UNKNOWN_ERRORt   VIRTUALENV_NOT_FOUND(   t   get_progt   Commandc           B   sP   e  Z d Z d Z e Z d  „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   c         C   sÐ   i |  j  d 6d t ƒ  |  j f d 6t ƒ  d 6t d 6|  j d 6|  j d 6} | |  _ t |   |  _ d |  j j	 ƒ  } t
 j |  j | ƒ |  _ x$ | j D] } |  j |  j | ƒ q™ W|  j |  j | j ƒ d  S(	   Nt   usages   %s %st   progt	   formattert   add_help_optiont   namet   descriptions
   %s Options(   R   R   R   R	   t   Falset   __doc__t   main_parserR   t   parsert
   capitalizet   optparset   OptionGroupt   cmd_optst   option_groupst   _copy_option_groupt   _copy_optionst   option_list(   t   selfR   t	   parser_kwt   optgroup_namet   group(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyt   __init__!   s    


	c         C   s1   x* | D]" } | j  s q n  | j | ƒ q Wd S(   s0   Populate an option parser or group with options.N(   t   destt
   add_option(   R"   R   t   optionst   option(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyR    8   s    	c         C   s9   t  j | | j ƒ } |  j | | j ƒ | j | ƒ d S(   s8   Copy option group (including options) to another parser.N(   R   R   t   titleR    R!   t   add_option_group(   R"   R   R%   t	   new_group(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyR   ?   s    c         C   sž   d d d d d d d d d	 d
 d g } t  s= | j d ƒ n  x6 | D]. } t | | t | | ƒ pn t | | ƒ ƒ qD W| j | j 7_ | j | j 7_ d  S(   Nt   logt   proxyt   require_venvt   log_explicit_levelst   log_filet   timeoutt   default_vcst   skip_requirements_regext   no_inputt   exists_actiont   certt   insecure(   R   t   appendt   setattrt   getattrt   quiett   verbose(   R"   t   initial_optionsR)   t   attrst   attr(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyt   merge_optionsF   s    		,c         C   s   d  S(   N(    (   R"   (    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyt   setup_loggingU   s    c         C   s  |  j  j | ƒ \ } } |  j | | ƒ d } | | j 7} | | j 8} t j d | ƒ } g  } t j j | t	 j
 f t j | j f g ƒ | j r¡ t t _ n  |  j ƒ  | j rÄ d t j d <n  | j ré d j | j ƒ t j d <n  t r	| j r	d t j d <n  | j r%| j t j d <n  | j r`t j j d	 ƒ s`t j d
 ƒ t	 j t ƒ q`n  | j r—t | j d ƒ } t j j t j | f ƒ n d  } t! j" | j# p¯d  ƒ t$ j% d | j& d | j ƒ t' } t( } y. |  j) | | ƒ }	 t* |	 t+ ƒ r	|	 } n  Wn[t, t- f k
 rft	 j. ƒ  d }
 t j t/ |
 ƒ ƒ t j0 d t1 ƒ  ƒ t } t2 } nt3 k
 r¹t	 j. ƒ  d }
 t j t/ |
 ƒ ƒ t j0 d t1 ƒ  ƒ t } t2 } n¯ t4 k
 rt	 j. ƒ  d }
 t j d |
 ƒ t j0 d t1 ƒ  ƒ t2 } nd t5 k
 rAt j d ƒ t j0 d t1 ƒ  ƒ t } t2 } n' t j d t1 ƒ  ƒ t } t6 } n X| d  k	 r| j7 ƒ  n  | r| j8 } d j | ƒ } y t | d ƒ } Wn; t9 k
 rït: j; d t( ƒ } | j< } t | d ƒ } n Xt j d | ƒ | j= | ƒ | j7 ƒ  n  | S(   Ni   i   t   1t   PIP_NO_INPUTt    t   PIP_EXISTS_ACTIONt   PIP_INSECUREt   PIP_CERTt   VIRTUAL_ENVs2   Could not find an activated virtualenv (required).t   at   proxystrt	   promptings   Exception information:
%ss	   ERROR: %ss   Operation cancelled by users   Exception:
%ss   
t   wt   deletes   Storing complete log in %s(>   R   t
   parse_argsRB   R>   R=   R    t   level_for_integert	   consumerst   extendt   syst   stdoutt   DEBUGR:   R1   t   Truet   explicit_levelsRC   R6   t   ost   environR7   t   joinR   R9   R8   R0   t   gett   fatalt   exitR   R.   t   open_logfilet   Nonet   sockett   setdefaulttimeoutR3   R   t   setupR/   R
   R   t   runt
   isinstancet   intR   R   t   exc_infot   strt   infot
   format_excR   R   R   t   KeyboardInterruptR   t   closeR2   t   IOErrort   tempfilet   NamedTemporaryFileR   t   write(   R"   t   argsR?   R)   t   levelt   complete_logt   log_fpR^   t	   store_logt   statust   et   log_fnt   textt   temp(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyt   mainX   sœ    		
									
		N(   t   __name__t
   __module__R`   R   R   R   t   hiddenR&   R    R   RB   RC   R{   (    (    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyR      s   					c         C   sG   |  d  k r t j ƒ  }  n  t ƒ  } t j |  t d | ƒ Ž  | j ƒ  S(   Nt   file(   R`   RT   Rg   R   t	   tracebackt   print_exceptiont   dictt   getvalue(   Rg   t   out(    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyRj   »   s
    	RK   c         C   sÂ   t  j j |  ƒ }  t  j j |  ƒ }  t  j j |  ƒ } t  j j | ƒ sX t  j | ƒ n  t  j j |  ƒ } t |  | ƒ } | r¾ | j d d d ƒ | j d t	 j
 d t j d ƒ f ƒ n  | S(   s¯   Open the named log file in append mode.

    If the file already exists, a separator will also be printed to
    the file to separate past activity from current activity.
    s   %s
t   -i<   s   %s run on %s
i    s   %c(   RY   t   patht
   expandusert   abspatht   dirnamet   existst   makedirst   openRp   RT   t   argvt   timet   strftime(   t   filenamet   modeR‰   RŠ   Rt   (    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyR_   Ã   s    *(%   R   RY   Ra   RT   Rn   R€   RŽ   R   t   pip.logR    t   pip.downloadR   t   pip.exceptionsR   R   R   R   t   pip.backwardcompatR   R   t   pip.baseparserR   R	   t   pip.status_codesR
   R   R   R   t   pip.utilR   t   __all__t	   get_proxyt   objectR   R`   Rj   R_   (    (    (    sV   /data/av2000/b2b/venv/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.pyt   <module>   s&   ""		Ÿ