Ñò
 „Pc           @   s•  d  Z  d d k Z d d k Z d d k Z d d k Z y d d k Z Wn e j
 o nÑ Xe i ƒ  Z d e	 f d „  ƒ  YZ
 e i i d d ƒ d< j Z y e p d d k Z n Wn e j
 o n Xe i i d	 e ƒ pK e e i ƒ e e i ƒ j o( e
 e i ƒ e _ e
 e i ƒ e _ q+n d d k Z d
 Z d Z d Z d Z h e d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6d! d" 6Z e i i d# d$ ƒ d= j Z e oC y# e i i ƒ  o e i i ƒ  Z Wqe j
 o e Z qXn e o e i i d# d$ ƒ d& j p e o e e d <n d' „  Z y( d d k  Z  d d k! Z! d d k" Z" Wn e j
 o n= Xe o4 d( „  Z# y e# ƒ  Wn e$ j
 o qÂXe# Z n d) e _  d* „  Z% d+ e	 f d, „  ƒ  YZ& e& ƒ  Z' e i( d- e i) ƒ Z* d. e i+ f d/ „  ƒ  YZ, d0 e i- f d1 „  ƒ  YZ. d a0 d2 „  Z1 d3 „  Z2 d4 „  Z3 d5 „  Z4 d6 „  Z5 d7 „  Z6 d8 d9 „ Z7 d d: d; „ Z8 d S(>   s2   
logging, colors, terminal width and pretty-print
iÿÿÿÿNt   sync_streamc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  |  i  i |  _ d  S(   N(   t   streamt   encoding(   t   selfR   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   __init__   s    	c         C   s=   z+ t  i ƒ  |  i i | ƒ |  i i ƒ  Wd  t  i ƒ  Xd  S(   N(   t   wlockt   acquireR   t   writet   flusht   release(   R   t   txt(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR      s
    
c         C   s   |  i  i ƒ  S(   N(   R   t   fileno(   R   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR      s    c         C   s   |  i  i ƒ  d  S(   N(   R   R   (   R   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR   "   s    c         C   s   |  i  i ƒ  S(   N(   R   t   isatty(   R   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR   %   s    (   t   __name__t
   __module__R   R   R   R   R   (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR       s
   				t   NOCOLORt   not   0t   falset   NOSYNCs,   %(asctime)s %(c1)s%(zone)s%(c2)s %(message)ss   %H:%M:%St    i    t   USEs   [01;1mt   BOLDs   [01;31mt   REDs   [32mt   GREENs   [33mt   YELLOWs   [35mt   PINKs   [01;34mt   BLUEs   [36mt   CYANs   [0mt   NORMALs   [?25ht	   cursor_ons   [?25lt
   cursor_offt   TERMt   dumbt   emacst   msysc           C   s   d S(   NiP   (    (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   get_term_colsT   s    c          C   sP   t  i d t i t i i ƒ  t i t  i	 d d d d d ƒ ƒ ƒ d  \ }  } | S(   s   
			Private use only.
			t   HHHHi    i   (
   t   structt   unpackt   fcntlt   ioctlt   syst   stderrR   t   termiost
   TIOCGWINSZt   pack(   t   dummy_linest   cols(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   get_term_cols_real_   s    	+sb   
	Get the console width in characters.

	:return: the number of characters per line
	:rtype: int
	c         C   s    t  d p d St  i |  d ƒ S(   NR   R   (   t
   colors_lstt   get(   t   cl(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt	   get_colorw   s     t
   color_dictc           B   s    e  Z d  Z d „  Z d „  Z RS(   s-   attribute-based color access, eg: colors.PINKc         C   s
   t  | ƒ S(   N(   R5   (   R   t   a(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   __getattr__}   s    c         C   s
   t  | ƒ S(   N(   R5   (   R   R7   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   __call__   s    (   R   R   t   __doc__R8   R9   (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR6   {   s   	s   (\w+): (.*)t
   log_filterc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   sý   
	The waf logs are of the form 'name: message', and can be filtered by 'waf --zones=name'.
	For example, the following::

		from waflib import Logs
		Logs.debug('test: here is a message')

	Will be displayed only when executing::

		$ waf --zones=test
	c         C   s   d  S(   N(    (   R   t   name(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR   ‘   s    c         C   s  t  i | _ t  i | _ | i | _ | i t i	 j oW | i t i
 j o t  i | _ n0 | i t i j o t  i | _ n t  i | _ t St i | i ƒ } | o( | i d ƒ | _ | i d ƒ | _ n t o$ t | d d ƒ t j p
 d t j St d j p t St S(   s{   
		filter a record, adding the colors automatically

		* error: red
		* warning: yellow

		:param rec: message to record
		i   i   t   zoneR   t   *(   t   colorsR   t   c1R   t   c2t   moduleR=   t   levelnot   loggingt   INFOt   ERRORR   t   WARNINGR   R   t   Truet   re_logt   matcht   msgt   groupt   zonest   getattrt   verboset   False(   R   t   rect   m(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   filter”   s&    
$N(   R   R   R:   t   NoneR   RS   (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR;   …   s   t	   formatterc           B   s    e  Z d  Z d „  Z d „  Z RS(   s)   Simple log formatter which handles colorsc         C   s   t  i i |  t t ƒ d  S(   N(   RD   t	   FormatterR   t
   LOG_FORMATt   HOUR_FORMAT(   R   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR   ·   s    c         C   s†   | i  t i j p | i  t i j oM y | i i d ƒ } Wn t j
 o | i } n Xd | i | | i f St i	 i
 |  | ƒ S(   sI   Messages in warning, error or info mode are displayed in color by defaults   utf-8s   %s%s%s(   RC   RD   RG   RE   RK   t   decodet	   ExceptionR@   RA   RV   t   format(   R   RQ   RK   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR[   º   s    &(   R   R   R:   R   R[   (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyRU   µ   s   	c          O   sE   t  o: t |  ƒ }  |  d i d d ƒ |  d <t i |  | Ž  n d S(   sF   
	Wrap logging.debug, the output is filtered for performance reasons
	i    s   
t    N(   RO   t   listt   replacet   logt   debug(   t   kt   kw(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyR`   Ç   s    c          O   sÆ   t  i |  | Ž  t d j o¥ t i ƒ  } | oŽ | d  } g  } xV | D]N \ } } } } | i d | | | f ƒ | o | i d | i ƒ  ƒ qG qG W| o t  i d i | ƒ ƒ q¾ qÂ n d S(   sL   
	Wrap logging.errors, display the origin of the message when '-vv' is set
	i   iÿÿÿÿs     File "%s", line %d, in %ss   	%ss   
N(   R_   t   errorRO   t	   tracebackt   extract_stackt   appendt   stript   join(   Ra   Rb   t   stt   buft   filenamet   linenoR<   t   line(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyRc   Ñ   s    
  c          O   s   t  i |  | Ž  d S(   s   
	Wrap logging.warn
	N(   R_   t   warn(   Ra   Rb   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyRn   â   s    c          O   s   t  i |  | Ž  d S(   s   
	Wrap logging.info
	N(   R_   t   info(   Ra   Rb   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyRo   é   s    c          C   sn   t  i d ƒ a g  t _ g  t _ t  i ƒ  }  |  i t ƒ  ƒ t i |  ƒ t i	 t
 ƒ  ƒ t i t  i ƒ d S(   s#   
	Initialize the loggers globally
	t   waflibN(   RD   t	   getLoggerR_   t   handlerst   filterst   StreamHandlert   setFormatterRU   t
   addHandlert	   addFilterR;   t   setLevelt   DEBUG(   t   hdlr(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   init_logð   s    		c         C   s^   t  i | ƒ } t  i |  d ƒ } t  i d ƒ } | i | ƒ | i | ƒ | i t  i ƒ | S(   s•  
	Create a simple logger, which is often used to redirect the context command output::

		from waflib import Logs
		bld.logger = Logs.make_logger('test.log', 'build')
		bld.check(header_name='sadlib.h', features='cxx cprogram', mandatory=False)
		bld.logger = None

	:param path: file name to write the log output to
	:type path: string
	:param name: logger name (loggers are reused)
	:type name: string
	t   ws   %(message)s(   RD   Rq   t   FileHandlerRV   Ru   Rv   Rx   Ry   (   t   pathR<   t   loggerRz   RU   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   make_loggerþ   s    i'  c         C   sw   d d k  l } t i |  ƒ } | | d | ƒ} t i d ƒ } | i | ƒ | i | ƒ | | _ | i t i	 ƒ | S(   sK   
	Create a memory logger to avoid writing concurrently to the main logger
	iÿÿÿÿ(   t   MemoryHandlert   targets   %(message)s(
   t   logging.handlersR   RD   Rq   RV   Ru   Rv   t
   memhandlerRx   Ry   (   R<   t   to_logt   sizeR   R   Rz   RU   (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   make_mem_logger  s    	s   
c         C   s0   t  i i d t |  ƒ | t i | | f ƒ d S(   sÉ  
	Print messages in color immediately on stderr::

		from waflib import Logs
		Logs.pprint('RED', 'Something bad just happened')

	:param col: color name to use in :py:const:`Logs.colors_lst`
	:type col: string
	:param str: message to display
	:type str: string or a value that can be printed by %s
	:param label: a message to add after the colored output
	:type label: string
	:param sep: a string to append at the end (line separator)
	:type sep: string
	s   %s%s%s %s%sN(   R*   R+   R   R?   R   (   t   colt   strt   labelt   sep(    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   pprint"  s    (   R   R   R   (   R!   R"   (9   R:   t   ost   reRd   R*   t	   threadingt   ImportErrort   LockR   t   objectR    t   environR3   t   _nocolort   waflib.ansitermRp   RP   t   idt   stdoutt
   __stdout__R+   RD   RW   RX   RM   RO   RH   R2   t   got_ttyR   t   AttributeErrorR$   R&   R(   R,   R1   RZ   R5   R6   R?   t   compilet   MRI   t   FilterR;   RV   RU   RT   R_   R`   Rc   Rn   Ro   R{   R€   R‡   RŒ   (    (    (    s8   /home/data/ftp/pub/unpacked/waf.tmpconfig/waflib/Logs.pyt   <module>   sŒ   0
#+	(	

			0	
					