£Á°è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>

7Re$  c               @   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(   u   Logging
i    N(   u   backwardcompat(   u   coloramau   pkg_resourcesc                 s     f d d   } | S(   Nc                s#   d j  t    |  t j j g  S(   Nu    (   u   joinu   listu   coloramau   Styleu	   RESET_ALL(   u   inp(   u   colors(    u    /tmp/pip-zej_zi-build/pip/log.pyu   wrapped   s    u   _color_wrap.<locals>.wrapped(    (   u   colorsu   wrapped(    (   u   colorsu    /tmp/pip-zej_zi-build/pip/log.pyu   _color_wrap   s    u   _color_wrapc             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(   Nu   isattyu   TERMu   ANSIFT(	   u
   isinstanceu   coloramau   AnsiToWin32u   wrappedu   Falseu   hasattru   isattyu   Trueu   get(   u   consumeru   environu   stdu   real_consumer(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   should_color   s    	u   should_colorc             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(   Nu   .i   i   (   u   joinu   splitu   stru   intu   pkg_resourcesu   parse_version(   u   current_versionu   removal_versionu   majoru   minoru   warn_version(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   should_warn&   s    ""u   should_warnc             B   s  |  Ee  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(,   u   Loggeru   
    Logging object for use in command-line script.  Allows ranges of
    levels, to avoid some redundancy of displayed information.
    i   i   c             C   s1   g  |  _  d |  _ d |  _ d  |  _ d |  _ d  S(   Ni    F(   u	   consumersu   indentu   Falseu   explicit_levelsu   Noneu   in_progressu   in_progress_hanging(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   __init__L   s
    				u   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(   Nu   winu   write(	   u   sysu   platformu
   startswithu   hasattru	   consumersu   appendu   coloramau   AnsiToWin32u   extend(   u   selfu	   consumersu   levelu   consumer(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   add_consumersS   s    	u   Logger.add_consumersc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   DEBUG(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   debug_   s    u   Logger.debugc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   INFO(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   infob   s    u   Logger.infoc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   NOTIFY(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   notifye   s    u   Logger.notifyc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   WARN(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   warnh   s    u   Logger.warnc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   ERROR(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   errork   s    u   Logger.errorc             O   s   |  j  |  j | | |  d  S(   N(   u   logu   FATAL(   u   selfu   msgu   argsu   kw(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   fataln   s    u   Logger.fatalc             O   sL   d d l  m } t | |  r5 |  j | | |  n |  j | | |  d S(   u  
        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.
        i    (   u   __version__N(   u   pipu   __version__u   should_warnu   warnu   error(   u   selfu   removal_versionu   msgu   argsu   kwargsu   __version__(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu
   deprecatedq   s    
u   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(
   Nu6   You may give positional or keyword arguments, not bothu    u   %02i %su   
u   writec             S   s   |  S(   N(    (   u   x(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   <lambda>   s    u   Logger.log.<locals>.<lambda>u   flushF(   u	   TypeErroru   indentu   explicit_levelsu	   consumersu   level_matchesu   in_progress_hangingu   sysu   stdoutu   stderru   Falseu   writeu   flushu   hasattru   should_coloru   osu   environu   COLORSu   get(
   u   selfu   levelu   msgu   argsu   kwu   renderedu   consumer_levelu   consumeru   write_contentu	   colorizer(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   log   s6    			
u
   Logger.logc             C   s   |  j  |  j  o t j j   S(   u$   Should we display download progress?(   u   stdout_level_matchesu   NOTIFYu   sysu   stdoutu   isatty(   u   self(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   _show_progress   s    u   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(   Nu0   Tried to start_progress(%r) while in_progress %ru    TF(   u   in_progressu   AssertionErroru   _show_progressu   sysu   stdoutu   writeu   indentu   flushu   Trueu   in_progress_hangingu   Falseu   Noneu   last_message(   u   selfu   msg(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   start_progress   s    		u   Logger.start_progressu   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(   Nu,   Tried to end_progress without start_progressu   ...u   
u    F(   u   in_progressu   AssertionErroru   _show_progressu   in_progress_hangingu   sysu   stdoutu   writeu   flushu   loggeru   show_progressu   Noneu   False(   u   selfu   msg(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   end_progress   s    			u   Logger.end_progressc             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(   ua   If we are in a progress scope, and no log messages have been
        shown, write out another '.'u   .u    i    u    u	   %s%s%s%sN(   u   in_progress_hangingu   Noneu   sysu   stdoutu   writeu   flushu   last_messageu   maxu   lenu   indentu   in_progress(   u   selfu   messageu   padding(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   show_progress   s    		)u   Logger.show_progressc             C   s   |  j  | |  j    S(   u9   Returns true if a message at this level will go to stdout(   u   level_matchesu   _stdout_level(   u   selfu   level(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   stdout_level_matches   s    u   Logger.stdout_level_matchesc             C   s4   x* |  j  D] \ } } | t j k r
 | Sq
 W|  j S(   u%   Returns the level that stdout runs at(   u	   consumersu   sysu   stdoutu   FATAL(   u   selfu   levelu   consumer(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   _stdout_level   s    u   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(   um  
        >>> 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(   u
   isinstanceu   sliceu   startu   stopu   Noneu   Falseu   True(   u   selfu   levelu   consumer_levelu   startu   stop(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   level_matches   s    u   Logger.level_matchesc             C   s?   |  j  } | d k  r | d S| t |  k r7 | d S| | S(   Ni    i   i(   u   LEVELSu   len(   u   clsu   levelu   levels(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   level_for_integer   s    	u   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(   u	   consumersu   sysu   stdoutu   appendu   stderru   removeu   extend(   u   selfu	   to_removeu   to_addu   consumer_levelu   consumeru   item(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   move_stdout_to_stderr	  s    u   Logger.move_stdout_to_stderrN()   u   __name__u
   __module__u   __qualname__u   __doc__u   loggingu   DEBUGu   VERBOSE_DEBUGu   INFOu   WARNu   NOTIFYu   WARNINGu   ERRORu   FATALu   LEVELSu   _color_wrapu   coloramau   Foreu   YELLOWu   REDu   COLORSu   __init__u   add_consumersu   debugu   infou   notifyu   warnu   erroru   fatalu
   deprecatedu   logu   _show_progressu   start_progressu   end_progressu   Noneu   show_progressu   stdout_level_matchesu   _stdout_levelu   level_matchesu   classmethodu   level_for_integeru   move_stdout_to_stderr(   u
   __locals__(    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   Logger7   s@   				&	u   Logger(   u   __doc__u   sysu   osu   loggingu   pipu   backwardcompatu   pip._vendoru   coloramau   pkg_resourcesu   _color_wrapu   stdoutu   stderru   should_coloru   should_warnu   objectu   Loggeru   logger(    (    (    u    /tmp/pip-zej_zi-build/pip/log.pyu   <module>   s   