ó
û_¾Tc           @   sY  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 m Z d d l m	 Z	 d d l
 m Z m Z 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 m Z m Z d
 d d d d g Z i  Z e j Z d e  f d „  ƒ  YZ! d d „ Z# d d „ Z$ d „  Z% d „  Z& d „  Z' d S(   s(   Base Command class, and related routinesiÿÿÿÿN(   t   commands(   t   logger(   t   parsert   ConfigOptionParsert   UpdatingDefaultsHelpFormatter(   t   urlopen(   t
   BadCommandt   InstallationErrort   UninstallationErrort   CommandError(   t   StringIOt   walk_packages(   t   SUCCESSt   ERRORt   UNKNOWN_ERRORt   VIRTUALENV_NOT_FOUNDt   command_dictt   Commandt   load_all_commandst   load_commandt   command_namesc           B   s>   e  Z d Z d Z e Z d  „  Z d „  Z d „  Z	 d „  Z
 RS(   c         C   s­   |  j  s t ‚ t d |  j d d t j d |  j  f d t j d t ƒ  d |  j  ƒ |  _ x@ t j	 D]5 } | j
 sc | j
 d k rˆ qc n  |  j j | ƒ qc W|  t |  j  <d  S(	   Nt   usaget   progs   %s %si    t   versiont	   formattert   namet   help(   R   t   AssertionErrorR   R   t   syst   argvR   R   R   t   option_listt   destt
   add_optionR   (   t   selft   option(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyt   __init__!   s    			c      
   C   s   xT d d d d d d d d d	 d
 g
 D]. } t  | | t | | ƒ pO t | | ƒ ƒ q% 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_action(   t   setattrt   getattrt   quiett   verbose(   R!   t   initial_optionst   optionst   attr(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyt   merge_options0   s    ,c         C   s   d  S(   N(    (   R!   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyt   setup_logging;   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  | 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  psd  ƒ t! j" d
 | j# d | j ƒ t$ } t% } y. |  j& | | ƒ }	 t' |	 t( ƒ rÍ|	 } n  Wn[t) t* f k
 r*t	 j+ ƒ  d }
 t j t, |
 ƒ ƒ t j- d t. ƒ  ƒ t } t/ } nt0 k
 r}t	 j+ ƒ  d }
 t j t, |
 ƒ ƒ t j- d t. ƒ  ƒ t } t/ } n¯ t1 k
 rÈt	 j+ ƒ  d }
 t j d |
 ƒ t j- d t. ƒ  ƒ t/ } nd t2 k
 rt j d ƒ t j- d t. ƒ  ƒ t } t/ } n' t j d t. ƒ  ƒ t } t3 } n X| d  k	 rE| j4 ƒ  n  | r| j5 } d j | ƒ } t j d | ƒ t | d ƒ } | j6 | ƒ | j4 ƒ  n  | S(   Ni   i   t   1t   PIP_NO_INPUTt    t   PIP_EXISTS_ACTIONt   VIRTUAL_ENVs2   Could not find an activated virtualenv (required).t   at   proxystrt	   promptings   Exception information:
%ss	   ERROR: %ss   Operation cancelled by users   Exception:
%ss   
s   Storing complete log in %st   w(7   R   t
   parse_argsR5   R1   R0   R   t   level_for_integert	   consumerst   extendR   t   stdoutt   DEBUGt   appendR'   t   Truet   explicit_levelsR6   R,   t   ost   environR-   t   joinR&   t   gett   fatalt   exitR   R$   t   open_logfilet   Nonet   sockett   setdefaulttimeoutR)   R   t   setupR%   R   t   Falset   runt
   isinstancet   intR   R   t   exc_infot   strt   infot
   format_excR   R   R	   t   KeyboardInterruptR   t   closeR(   t   write(   R!   t   argsR2   R3   t   levelt   complete_logt   log_fpRN   t	   store_logt   statust   et   log_fnt   text(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyt   main>   sŠ    		
								
	N(   t   __name__t
   __module__RP   R   R   RT   t   hiddenR#   R5   R6   Rh   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-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(   RP   R   RX   R
   t	   tracebackt   print_exceptiont   dictt   getvalue(   RX   t   out(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyR[   “   s
    	R<   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(   RI   t   patht
   expandusert   abspatht   dirnamet   existst   makedirst   openR^   R   R   t   timet   strftime(   t   filenamet   modeRv   Rw   Rb   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyRO   ›   s    *c         C   sC   d |  } | t  j k r d  Sy t | ƒ Wn t k
 r> n Xd  S(   Ns   pip.commands.%s(   R   t   modulest
   __import__t   ImportError(   R   t	   full_name(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyR   ¯   s    
c          C   s"   x t  ƒ  D] }  t |  ƒ q
 Wd  S(   N(   R   R   (   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyR   ¹   s    c          C   s,   t  d „  t d t j ƒ Dƒ ƒ }  t |  ƒ S(   Nc         s   s   |  ] } | d  Vq d S(   i   N(    (   t   .0t   pkg(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pys	   <genexpr>¿   s    Rs   (   t   setR   R    t   __path__t   list(   t   names(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyR   ¾   s    "((   t   __doc__RI   RQ   R   Rm   Rz   t   pipR    t   pip.logR   t   pip.baseparserR   R   R   t   pip.downloadR   t   pip.exceptionsR   R   R   R	   t   pip.backwardcompatR
   R   t   pip.status_codesR   R   R   R   t   __all__R   t	   get_proxyt   objectR   RP   R[   RO   R   R   R   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.pyt   <module>   s,   ""		w	
	