ó
¡¡zRc           @   s‘  d  Z  d d l Z d d l Z d d l Z d d l m Z m Z m Z m Z m Z m	 Z	 d d l
 Z e d  g e d d d d	 d
 d d d g e d d ƒ ƒ ƒ Z i e d e 6e d e 6e d e 6e d e 6e d e 6Z d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d d „ Z e j e ƒ e	 d ƒ Z  d S(!   s   Simple colored logging classesiÿÿÿÿN(   t   DEBUGt   INFOt   WARNINGt   ERRORt   CRITICALt	   getLoggert   nonei    t   blackt   redt   greent   yellowt   bluet   magentat   cyant   whitei   i&   t	   GbpFilterc           B   s    e  Z d  Z d „  Z d „  Z RS(   s$   Filter for enabling selective outputc         C   s   | |  _  d  S(   N(   t   _levels(   t   selft   levels(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   __init__&   s    c         C   s   | j  |  j k r t St S(   s   Do we show the record(   t   levelnoR   t   Truet   False(   R   t   record(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   filter)   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR   $   s   	t   GbpStreamHandlerc           B   sY   e  Z d  Z d Z d Z d
 d d „ Z d „  Z i  d „ Z d „  Z	 d „  Z
 d	 „  Z RS(   s2   Special stream handler for enabling colored outputs   [%dms   [0mt   autoc         C   s]   t  t |  ƒ j | ƒ t j j | ƒ |  _ t j ƒ  |  _	 d } |  j
 t j d | ƒ ƒ d  S(   Ns8   %(color)s%(name)s:%(levelname)s: %(message)s%(coloroff)st   fmt(   t   superR   R   t   gbpt   tristatet   Tristatet   _colort   DEFAULT_COLOR_SCHEMEt   copyt   _color_schemet   setFormattert   loggingt	   Formatter(   R   t   streamt   colort   msg_fmt(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR   6   s
    c         C   s   t  j j | ƒ |  _ d S(   s   Set/unset colorized outputN(   R    R!   R"   R#   (   R   R+   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt	   set_color=   s    c         C   s#   t  j ƒ  |  _ |  j j | ƒ d S(   s   Set logging colorsN(   R$   R%   R&   t   update(   R   t   color_scheme(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   set_color_schemeA   s    c         C   s   |  j  t j d | ƒ ƒ d S(   s   Set logging formatR   N(   R'   R(   R)   (   R   R   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt
   set_formatF   s    c         C   sd   |  j  j ƒ  r t S|  j  j ƒ  r` t j d ƒ oI t j d d ƒ j d ƒ } |  j j ƒ  o_ | St	 S(   s!   Check if to print in color or nott   EMACSt   INSIDE_EMACSt    s   ,comint(
   R#   t   is_onR   t   is_autot   ost   getenvt   endswithR*   t   isattyR   (   R   t   in_emacs(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt
   _use_colorJ   s    c         C   sm   d | _  | _ |  j ƒ  rE |  j |  j | j | _  |  j | _ n  | j j ƒ  | _ t	 t
 |  ƒ j | ƒ S(   s   Colorizing formatterR4   (   R+   t   coloroffR<   t	   COLOR_SEQR&   R   t   OFF_SEQt	   levelnamet   lowerR   R   t   format(   R   R   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRB   T   s    N(   R   R   R   R>   R?   t   NoneR   R-   R0   R1   R<   RB   (    (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR   0   s   			
t	   GbpLoggerc           B   s8   e  Z d  Z d d „ Z d „  Z i  d „ Z d „  Z RS(   s!   Logger class for git-buildpackageR   c         O   s«   t  t |  ƒ j | | | Ž t t j | ƒ t t j | ƒ g |  _ |  j d j t	 t
 t g ƒ ƒ |  j d j t	 t t t g ƒ ƒ x |  j D] } |  j | ƒ q Wd  S(   Ni    i   (   R   RD   R   R   t   syst   stdoutt   stderrt   _default_handlerst	   addFilterR   R    R   R   R   R   t
   addHandler(   R   t   nameR+   t   argst   kwargst   hdlr(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR   a   s     c         C   s%   x |  j  D] } | j | ƒ q
 Wd S(   s2   Set/unset colorized output of the default handlersN(   RH   R-   (   R   R+   RN   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR-   k   s    c         C   s%   x |  j  D] } | j | ƒ q
 Wd S(   s,   Set the color scheme of the default handlersN(   RH   R0   (   R   R/   RN   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR0   p   s    c         C   s%   x |  j  D] } | j | ƒ q
 Wd S(   s&   Set the format of the default handlersN(   RH   R1   (   R   R   RN   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyR1   u   s    (   R   R   R   R   R-   R0   R1   (    (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRD   ^   s
   
	c         C   s   t  j |  ƒ d S(   s1   Logs a message with level ERROR on the GBP loggerN(   t   LOGGERt   error(   t   msg(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   err{   s    c         C   s   t  |  ƒ d  S(   N(   RR   (   RQ   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRP      s    c         C   s   t  j |  ƒ d S(   s3   Logs a message with level WARNING on the GBP loggerN(   RO   t   warning(   RQ   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   warn‚   s    c         C   s   t  |  ƒ d  S(   N(   RT   (   RQ   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRS   †   s    c         C   s   t  j |  ƒ d S(   s0   Logs a message with level INFO on the GBP loggerN(   RO   t   info(   RQ   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRU   ‰   s    c         C   s   t  j |  ƒ d S(   s1   Logs a message with level DEBUG on the GBP loggerN(   RO   t   debug(   RQ   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyRV      s    R4   c         C   sÝ   i  } |  j  d ƒ } t t t t f } |  r^ t | ƒ t | ƒ k r^ t d t | ƒ ƒ ‚ n  xx t | ƒ D]j \ } } | | } y t | ƒ | | <Wqk t k
 rÔ y t	 | j
 ƒ  | | <WqÕ t k
 rÐ qÕ Xqk Xqk W| S(   s   Set logging colorst   :s+   Number color fields in color scheme not %d'(   t   splitR    R   R   R   t   lent
   ValueErrort	   enumeratet   intt   COLORSRA   t   KeyError(   R/   t   schemet   colorsR   t   fieldR+   t   level(    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   _parse_color_scheme‘   s     
 c         C   sG   t  j |  ƒ t  j t | ƒ ƒ | r6 t  j t ƒ n t  j t ƒ d S(   s   Basic logger setupN(   RO   R-   R0   Rc   t   setLevelR    R   (   R+   t   verboseR/   (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   setup¥   s
    R    (   R   i    (!   R   R7   RE   R(   R    R   R   R   R   R   t   gbp.tristateR    t   dictt   zipt   rangeR]   R$   t   objectR   t   StreamHandlerR   t   LoggerRD   RR   RP   RT   RS   RU   RV   Rc   Rf   t   setLoggerClassRO   (    (    (    s+   /usr/lib/python2.7/dist-packages/gbp/log.pyt   <module>   s2   .".						