Ñò
•èRc           @   s8  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l	 Z	 d d k
 l Z d d k l Z l Z l Z l Z d d k l Z d d k l Z l Z d d k l Z l Z l Z l Z d d	 k l Z d
 g Z e i 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   StringIO(   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Ð   h |  i  d 6d t ƒ  |  i f d 6t ƒ  d 6t d 6|  i d 6|  i d 6} | |  _ t |   |  _ d |  i i	 ƒ  } t
 i |  i | ƒ |  _ x$ | i D] } |  i |  i | ƒ q™ W|  i |  i | i ƒ 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(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyt   __init__!   s    


	
 c         C   s3   x, | D]$ } | i  p q n | i | ƒ q Wd S(   s0   Populate an option parser or group with options.N(   t   destt
   add_option(   R!   R   t   optionst   option(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyR   8   s
     
c         C   s9   t  i | | i ƒ } |  i | | i ƒ | i | ƒ 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(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyR   ?   s    c         C   s‰   d d d d d d d d d	 d
 d g } x7 | D]/ } t  | | t | | ƒ p t | | ƒ ƒ q. W| i | i 7_ | i | i 7_ d  S(   Nt   logt   proxyt   require_venvt   log_explicit_levelst   log_filet   timeoutt   default_vcst   skip_requirements_regext   no_inputt   exists_actiont   cert(   t   setattrt   getattrt   quiett   verbose(   R!   t   initial_optionsR(   t   attrst   attr(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyt   merge_optionsF   s    		 -c         C   s   d  S(   N(    (   R!   (    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyt   setup_loggingS   s    c      	   C   s  |  i  i | ƒ \ } } |  i | | ƒ d } | | i 7} | | i 8} t i d | ƒ } g  } t i i | t	 i
 f t i | i f g ƒ | i o t t _ n |  i ƒ  | i o d t i d <n | i o d i | i ƒ t i d <n | i o | i t i d <n | i o5 t i i d ƒ p t i d	 ƒ t	 i t ƒ qLn | i o/ t | i d
 ƒ } t i i t i | f ƒ n d  } t i  | i! p d  ƒ t" i# d | i$ d | i ƒ t% } t& } y0 |  i' | | ƒ }	 t( |	 t) ƒ o
 |	 } n Wnct* t+ f j
 oJ t	 i, ƒ  d }
 t i t- |
 ƒ ƒ t i. d t/ ƒ  ƒ t } t0 } n	t1 j
 oJ t	 i, ƒ  d }
 t i t- |
 ƒ ƒ t i. d t/ ƒ  ƒ t } t0 } n´ t2 j
 oB t	 i, ƒ  d }
 t i d |
 ƒ t i. d t/ ƒ  ƒ t0 } ng t3 j
 o4 t i d ƒ t i. d t/ ƒ  ƒ t } t0 } n( t i d t/ ƒ  ƒ t } t4 } n X| d  j	 o | i5 ƒ  n | o— | i6 } d i | ƒ } y t | d ƒ } Wn= t7 j
 o1 t8 i9 d t& ƒ } | i: } t | d ƒ } n Xt i d | ƒ | i; | ƒ | i5 ƒ  n | S(   Ni   i   t   1t   PIP_NO_INPUTt    t   PIP_EXISTS_ACTIONt   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_argsR?   R;   R:   R    t   level_for_integert	   consumerst   extendt   syst   stdoutt   DEBUGt   appendR0   t   Truet   explicit_levelsR@   R5   t   ost   environR6   t   joinR7   R/   t   gett   fatalt   exitR   R-   t   open_logfilet   Nonet   sockett   setdefaulttimeoutR2   R   t   setupR.   R	   R   t   runt
   isinstancet   intR   R   t   exc_infot   strt   infot
   format_excR
   R   R   t   KeyboardInterruptR   t   closeR1   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(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyt   mainV   s˜    	











		N(   t   __name__t
   __module__R]   R   R   R   t   hiddenR%   R   R   R?   R@   Rx   (    (    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyR      s   					c         C   sI   |  d  j o t i ƒ  }  n t ƒ  } t i |  t d | ƒ Ž  | i ƒ  S(   Nt   file(   R]   RP   Rd   R   t	   tracebackt   print_exceptiont   dictt   getvalue(   Rd   t   out(    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyRg   ¶   s
    	RG   c         C   sÆ   t  i i |  ƒ }  t  i i |  ƒ }  t  i i |  ƒ } t  i i | ƒ p t  i | ƒ n t  i i |  ƒ } t |  | ƒ } | o@ | i d d d ƒ | i d t	 i
 d t i 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(   RV   t   patht
   expandusert   abspatht   dirnamet   existst   makedirst   openRm   RP   t   argvt   timet   strftime(   t   filenamet   modeR†   R‡   Rq   (    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyR\   ¾   s    +($   R   RV   R^   RP   Rk   R}   R‹   R   t   pip.logR    t   pip.downloadR   t   pip.exceptionsR   R   R   R   t   pip.backwardcompatR   t   pip.baseparserR   R   t   pip.status_codesR	   R
   R   R   t   pip.utilR   t   __all__t	   get_proxyt   objectR   R]   Rg   R\   (    (    (    sK   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/basecommand.pyt   <module>   s&   ""		š