£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

Re$                 @   s   d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z m Z d d   Z	 e j
 e j f d d  Z d	 d
   Z Gd d   d e  Z e   Z d S)zLogging
    N)backwardcompat)coloramapkg_resourcesc                 s     f d d   } | S)Nc                s#   d j  t    |  t j j g  S)N )joinlistr   Style	RESET_ALL)inp)colors "/tmp/pip-ztkk0jow-build/pip/log.pywrapped   s    z_color_wrap.<locals>.wrappedr   )r   r   r   )r   r   _color_wrap   s    r   c             C   sm   t  |  t j  s |  n |  j } | | k r1 d St | d  rP | j   rP d S| j d  d k ri d Sd S)NFisattyTTERMANSI)
isinstancer   AnsiToWin32r   hasattrr   get)consumerenvironstdreal_consumerr   r   r   should_color   s    	r   c             C   s   d j  |  j d  d  d   }  d j  | j d  d  d   } | j d  \ } } t t |  d  } d j  | | g  } t j |   t j |  k  S)N.      )r   splitstrintr   parse_version)current_versionremoval_versionmajorminorwarn_versionr   r   r   should_warn&   s    ""r(   c               @   s  e  Z d  Z d Z e j d Z e j Z e j Z e j e j d Z	 e j Z Z
 e j Z e j Z e e e e	 e e e g Z i e e j j  e 6e e j j  e 6e e j j  e 6Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d d  Z  d d  d!  Z! d" d#   Z" d$ d%   Z# d& d'   Z$ e% d( d)    Z& d* d+   Z' d S),Loggerz
    Logging object for use in command-line script.  Allows ranges of
    levels, to avoid some redundancy of displayed information.
    r   r   c             C   s1   g  |  _  d |  _ d |  _ d  |  _ d |  _ d  S)Nr   F)	consumersindentexplicit_levelsin_progressin_progress_hanging)selfr   r   r   __init__L   s
    				zLogger.__init__c             G   s   t  j j d  rs xn | D]S \ } } t | d  rV |  j j | t j |  f  q |  j j | | f  q Wn |  j j |  d  S)Nwinwrite)	sysplatform
startswithr   r*   appendr   r   extend)r/   r*   levelr   r   r   r   add_consumersS   s    	zLogger.add_consumersc             O   s   |  j  |  j | | |  d  S)N)logDEBUG)r/   msgargskwr   r   r   debug_   s    zLogger.debugc             O   s   |  j  |  j | | |  d  S)N)r:   INFO)r/   r<   r=   r>   r   r   r   infob   s    zLogger.infoc             O   s   |  j  |  j | | |  d  S)N)r:   NOTIFY)r/   r<   r=   r>   r   r   r   notifye   s    zLogger.notifyc             O   s   |  j  |  j | | |  d  S)N)r:   WARN)r/   r<   r=   r>   r   r   r   warnh   s    zLogger.warnc             O   s   |  j  |  j | | |  d  S)N)r:   ERROR)r/   r<   r=   r>   r   r   r   errork   s    zLogger.errorc             O   s   |  j  |  j | | |  d  S)N)r:   FATAL)r/   r<   r=   r>   r   r   r   fataln   s    zLogger.fatalc             O   sL   d d l  m } t | |  r5 |  j | | |  n |  j | | |  d S)a  
        Logs deprecation message which is log level WARN if the
        ``removal_version`` is > 1 minor release away and log level ERROR
        otherwise.

        removal_version should be the version that the deprecated feature is
        expected to be removed in, so something that will not exist in
        version 1.7, but will in 1.6 would have a removal_version of 1.7.
        r   )__version__N)piprJ   r(   rE   rG   )r/   r$   r<   r=   kwargsrJ   r   r   r   
deprecatedq   s    
zLogger.deprecatedc       
      O   sx  | r | r t  d   q n  | p' | } | r= | | } n | } d |  j | } |  j rp d | | f } n  x|  j D] \ } } |  j | |  rz |  j r | t j t j f k r d |  _ t j j	 d  t j j
   n  t | d  rc| d } t | t j  r7|  j j | d d    }	 |	 |  } n  | j	 |  t | d	  rm| j
   qmqp| |  qz qz Wd  S)
Nz6You may give positional or keyword arguments, not both z%02i %sF
r2   c             S   s   |  S)Nr   )xr   r   r   <lambda>   s    zLogger.log.<locals>.<lambda>flush)	TypeErrorr+   r,   r*   level_matchesr.   r3   stdoutstderrr2   rR   r   r   osr   COLORSr   )
r/   r8   r<   r=   r>   renderedconsumer_levelr   write_content	colorizerr   r   r   r:      s6    			
z
Logger.logc             C   s   |  j  |  j  o t j j   S)z$Should we display download progress?)stdout_level_matchesrB   r3   rU   r   )r/   r   r   r   _show_progress   s    zLogger._show_progressc             C   s   |  j  s# t d | |  j  f   |  j   rc t j j d |  j |  t j j   d |  _ n	 d |  _ | |  _  d  |  _	 d  S)Nz0Tried to start_progress(%r) while in_progress %rrN   TF)
r-   AssertionErrorr^   r3   rU   r2   r+   rR   r.   last_message)r/   r<   r   r   r   start_progress   s    		zLogger.start_progresszdone.c             C   s   |  j  s t d   |  j   r |  j sY t j j d |  j  | d  t j j   q t j	 d  t j	 d  t j j | d  t j j   n  d  |  _  d |  _ d  S)Nz,Tried to end_progress without start_progressz...rO   r   F)
r-   r_   r^   r.   r3   rU   r2   rR   loggershow_progress)r/   r<   r   r   r   end_progress   s    			zLogger.end_progressNc             C   s   |  j  r | d k r5 t j j d  t j j   q |  j rg d t d t |  j  t |   } n d } t j j d d |  j |  j	 | | f  t j j   | |  _ n  d S)zaIf we are in a progress scope, and no log messages have been
        shown, write out another '.'Nr   rN   r   r   z	%s%s%s%s)
r.   r3   rU   r2   rR   r`   maxlenr+   r-   )r/   messagepaddingr   r   r   rc      s    		)zLogger.show_progressc             C   s   |  j  | |  j    S)z9Returns true if a message at this level will go to stdout)rT   _stdout_level)r/   r8   r   r   r   r]      s    zLogger.stdout_level_matchesc             C   s4   x* |  j  D] \ } } | t j k r
 | Sq
 W|  j S)z%Returns the level that stdout runs at)r*   r3   rU   rH   )r/   r8   r   r   r   r   ri      s    zLogger._stdout_levelc             C   sl   t  | t  r^ | j | j } } | d k	 r> | | k r> d S| d k	 sV | | k rZ d Sd S| | k Sd S)am  
        >>> l = Logger()
        >>> l.level_matches(3, 4)
        False
        >>> l.level_matches(3, 2)
        True
        >>> l.level_matches(slice(None, 3), 3)
        False
        >>> l.level_matches(slice(None, 3), 2)
        True
        >>> l.level_matches(slice(1, 3), 1)
        True
        >>> l.level_matches(slice(2, 3), 1)
        False
        NFT)r   slicestartstop)r/   r8   rZ   rk   rl   r   r   r   rT      s    zLogger.level_matchesc             C   s?   |  j  } | d k  r | d S| t |  k r7 | d S| | S)Nr   r   )LEVELSrf   )clsr8   levelsr   r   r   level_for_integer   s    	zLogger.level_for_integerc             C   s   g  } g  } xR |  j  D]G \ } } | t j k r | j | | f  | j | t j f  q q Wx | D] } |  j  j |  qh W|  j  j |  d  S)N)r*   r3   rU   r6   rV   remover7   )r/   	to_removeto_addrZ   r   itemr   r   r   move_stdout_to_stderr	  s    zLogger.move_stdout_to_stderr)(__name__
__module____qualname____doc__loggingr;   VERBOSE_DEBUGr@   rD   rB   WARNINGrF   rH   rn   r   r   ForeYELLOWREDrX   r0   r9   r?   rA   rC   rE   rG   rI   rM   r:   r^   ra   rd   rc   r]   ri   rT   classmethodrq   rv   r   r   r   r   r)   7   s@   				&	r)   )rz   r3   rW   r{   rK   r   pip._vendorr   r   r   rU   rV   r   r(   objectr)   rb   r   r   r   r   <module>   s   