ó
gÊù]c           @   sQ  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 y d  d l
 m Z Wn' e k
 rµ d e f d „  ƒ  YZ n Xy d  d l Z Wn; e k
 ry d  d l Z Wqe k
 rÿ d Z qXn Xd  d l m Z y d  d l
 m Z Wn! e k
 rKd  d l m Z n Xy d  d l m Z Wn9 e k
 r›y d  d l m Z Wqœe k
 r—qœXn Xy d  d l Z WnM e k
 rûd e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ e e _ e _ n" Xe j j Z d „  Z e e j _ d Z d Z d Z d d d d g Z d Z  y d  d l
 m! Z! Wn' e k
 r„d e" f d „  ƒ  YZ! n Xe j# dK k Z$ d Z% e$ r¸d e  j& k r¸d Z% n  d d d „ Z' d  d d! „ Z( d" „  Z) e* e  d# ƒ r<d d d$ „ Z+ d  d d% „ Z, d& „  Z- e' Z. e( Z/ e) Z0 e+ Z' e, Z( e- Z) n  y d' j1 d( ƒ Z2 Wn& e3 k
 rwd  d l4 Z4 d) „  Z5 n
 Xd* „  Z5 d+ e5 _6 e  j7 Z7 e$ r«d, „  Z8 e8 Z7 n  d- „  Z9 d. „  Z: d/ „  Z; e j< d0 e j= ƒ Z> d1 „  Z? d2 „  Z@ d3 „  ZA e j< d4 ƒ ZB d5 „  ZC e j# d6 k r&eA Z@ n e$ r5eC Z@ n  d7 e@ _6 d8 „  ZD d9 „  ZE d: „  ZF d; „  ZG d< „  ZH e j< d= ƒ ZI d> „  ZJ d? „  ZK d@ „  ZL dA „  ZM dB e f dC „  ƒ  YZN e$ rße jO ZP dD „  ZO eQ e dE eO ƒ n  e  jR dF k r)y e jS ƒ  e jT ƒ  Wq)eU k
 r%e jT e _S q)Xn  dG „  ZV dH „  ZW dI „  ZX dJ „  ZY d S(L   iÿÿÿÿN(   t   dequeR    c           B   s   e  Z d  „  Z RS(   c         C   s   |  j  d ƒ S(   Ni    (   t   pop(   t   self(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   popleft   s    (   t   __name__t
   __module__R   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR    
   s   (   t   Errors(   t   UserDict(   t   md5t	   threadingc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR	   #   s   t   Lockc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   d  S(   N(    (   R   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   acquire&   s    c         C   s   d  S(   N(    (   R   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   release(   s    (   R   R   R   R   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR
   %   s   	c          O   sU   y t  |  | Ž  Wn= t t f k
 r- ‚  n$ t k
 rP t j t j ƒ  Œ  n Xd  S(   N(   t   run_oldt   KeyboardInterruptt
   SystemExitt	   Exceptiont   syst
   excepthookt   exc_info(   t   argst   kwargs(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   run-   s    t   iluvcuteoverloadi¤  ií  s   \t   |t   /t   -i    (   t   defaultdictR   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s    t  t |  ƒ j ƒ  | |  _ d  S(   N(   t   superR   t   __init__t   default_factory(   R   R   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR   >   s    c         C   sI   y t  t |  ƒ j | ƒ SWn( t k
 rD |  j ƒ  } | |  | <| SXd  S(   N(   R   R   t   __getitem__t   KeyErrorR   (   R   t   keyt   value(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR   A   s    
(   R   R   R   R   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR   =   s   	t   win32t   clis
   [K%s%s%st   NOCOLORs   %s%s%st   rs	   ISO8859-1c         C   s•   t  j d k rd d | k rd | d 7} t |  | ƒ } z | j ƒ  } Wd  | j ƒ  X| j | ƒ } n- t |  | ƒ } z | j ƒ  } Wd  | j ƒ  X| S(   Ni   t   b(   R   t
   hexversiont   opent   readt   closet   decode(   t   fnamet   mt   encodingt   ft   txt(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   readfL   s    
t   wc         C   si   t  j d k r7 d | k r7 | j | ƒ } | d 7} n  t |  | ƒ } z | j | ƒ Wd  | j ƒ  Xd  S(   Ni   R'   (   R   R(   t   encodeR)   t   writeR+   (   R-   t   dataR.   R/   R0   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   writef\   s    c         C   s]   t  |  d ƒ } t ƒ  } z- x& |  rC | j d ƒ }  | j |  ƒ q WWd  | j ƒ  X| j ƒ  S(   Nt   rbi@ (   R)   R   R*   t   updateR+   t   digest(   R-   R0   R.   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   h_filee   s    		t   O_NOINHERITc         C   s  t  j t  j B} d | k r, | t  j O} n  d | k rH | t  j O} n  y t  j |  | ƒ } Wn! t k
 r� t d |  ƒ ‚ n Xt j	 d k ré d | k ré | d 7} t  j
 | | ƒ }  z |  j ƒ  } Wd  |  j ƒ  X| j | ƒ } n0 t  j
 | | ƒ }  z |  j ƒ  } Wd  |  j ƒ  X| S(   NR'   t   +s   Cannot read from %ri   (   t   osR<   t   O_RDONLYt   O_BINARYt   O_RDWRR)   t   OSErrort   IOErrorR   R(   t   fdopenR*   R+   R,   (   R0   R.   R/   t   flagst   fdR1   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   readf_win32p   s*    
c         C   sü   t  j d k r7 d | k r7 | j | ƒ } | d 7} n  t j t j Bt j Bt j B} d | k rq | t j O} n  d | k r� | t j	 O} n  y t j
 |  | ƒ } Wn! t k
 rÆ t d |  ƒ ‚ n Xt j | | ƒ }  z |  j | ƒ Wd  |  j ƒ  Xd  S(   Ni   R'   R=   s   Cannot write to %r(   R   R(   R4   R>   t   O_CREATt   O_TRUNCt   O_WRONLYR<   R@   RA   R)   RB   RC   RD   R5   R+   (   R0   R6   R.   R/   RE   RF   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   writef_win32‰   s     c         C   s«   y' t  j |  t  j t  j Bt  j Bƒ } Wn! t k
 rJ t d |  ƒ ‚ n Xt  j | d ƒ } t ƒ  } z- x& |  r‘ | j	 d ƒ }  | j
 |  ƒ ql WWd  | j ƒ  X| j ƒ  S(   Ns   Cannot read from %rR8   i@ (   R>   R)   R@   R?   R<   RB   RC   RD   R   R*   R9   R+   R:   (   R-   RF   R0   R.   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   h_file_win32›   s    '		t    t   hexc         C   s4   t  j |  ƒ } t | t ƒ s0 | j d ƒ } n  | S(   Ns   utf-8(   t   binasciit   hexlifyt
   isinstancet   strR,   (   t   st   ret(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   to_hex³   s    c         C   s   |  j  d ƒ S(   NRN   (   R4   (   RS   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyRU   ¹   s    s`   
Return the hexadecimal representation of a string

:param s: string to convert
:type s: string
c   	      C   sQ  |  sÛ y d d  l  } Wn/ t k
 rG g  t d ƒ D] } | d ^ q3 SXd } d } | j | | ƒ } | j j j | | | j | ƒ ƒ } g  t t	 | | ƒ ƒ D]1 } t
 | j d | d | d !j d ƒ ƒ ^ q£ Sn  t |  ƒ d k r|  d d	 k r|  t j 7}  n  t j j |  ƒ sDt d
 |  ƒ } t j | _ | ‚ n  t j |  ƒ S(   Niÿÿÿÿt   ABCDEFGHIJKLMNOPQRSTUVWXYZs   :\i   i   i   t   asciii   t   :s   %s is not a directory(   t   ctypest   ImportErrort   listt   create_string_buffert   windllt   kernel32t   GetLogicalDriveStringsAt   byreft   ranget   intRR   t   rawR,   t   lenR>   t   sept   patht   isdirRB   t   errnot   ENOENTt   listdir(	   RS   RY   t   xt   dlent	   maxdrivest   buft   ndrivest   it   e(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   listdir_win32Ã   s"    "%O"	c         C   s�   t  |  t ƒ r' t |  j d ƒ ƒ }  n  t  |  t ƒ rŒ d } xI t d ƒ D]; } | t |  ƒ k  rI | d d | t |  | ƒ 7} qI qI W| S|  S(   Nt   .i    i   i   i   (   RQ   RR   t   tuplet   splitRa   Rd   Rb   (   t   verRT   Rp   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   num2ver×   s    'c          C   s7   t  j ƒ  \ }  } } t j |  | | ƒ } d j | ƒ S(   NRM   (   R   R   t	   tracebackt   format_exceptiont   join(   t   exc_typet	   exc_valuet   tbt	   exc_lines(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   ex_stacká   s    c         C   s!   t  |  t ƒ r |  j ƒ  S|  Sd  S(   N(   RQ   RR   Ru   (   t   sth(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   to_listå   s    
s   *
c         C   s�   i  } t  j |  ƒ } x� | D]y } | j ƒ  } | s | j d ƒ s | j d ƒ d k  r_ q n  | j d ƒ } d j | d ƒ j ƒ  | | d j ƒ  <q W| S(   Nt   #t   =i    i   (   t   re_nlRu   t   stript
   startswitht   findRz   (   R1   t   tblt   linesRk   t   tmp(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   str_to_dictë   s    ++c         C   s   |  j  d ƒ S(   NR   (   Ru   (   Rf   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt
   split_pathõ   s    c         C   sE   |  j  d ƒ r8 |  j d ƒ d } d | d | d <| S|  j d ƒ S(   Ns   //R   i   i    (   R†   Ru   (   Rf   RT   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   split_path_cygwin÷   s
    s   [/\\]c         C   sK   |  j  d ƒ r; t j t |  ƒ d } d | d | d <| St j t |  ƒ S(   Ns   \\i   s   \i    (   R†   t   reRu   t   re_sp(   Rf   RT   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   split_path_win32þ   s
    t   cygwinsŽ   
Split a path by / or \. This function is not like os.path.split

:type  path: string
:param path: path to split
:return:     list of strings
c         C   sn   t  j j |  ƒ sj y t  j |  ƒ Wqj t k
 rf } t  j j |  ƒ sg t j d |  d | ƒ‚ qg qj Xn  d  S(   Ns   Cannot create the folder %rt   ex(   R>   Rf   Rg   t   makedirsRB   R   t   WafError(   Rf   Rq   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt	   check_dir  s    c         K   sC   x< | j  ƒ  D]. \ } } t |  | ƒ s t |  | | ƒ q q Wd  S(   N(   t   itemst   hasattrt   setattr(   t   clst   kwt   kt   v(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt	   def_attrs  s    c         C   s+   t  j d ƒ j d |  ƒ } | j ƒ  } | S(   Ns   [^a-zA-Z0-9]t   _(   RŽ   t   compilet   subt   upper(   RS   t   fu(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   quote_define_name  s    c         C   s&   t  ƒ  } | j t |  ƒ ƒ | j ƒ  S(   N(   R   R9   RR   R:   (   t   lstR.   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   h_list  s    	c         C   sr   y |  j  SWn` t k
 rm y t j |  ƒ } Wn t k
 rG d } n Xy | |  _  Wn t k
 rh n X| SXd  S(   Nt   nocode(   t   codet   AttributeErrort   inspectt	   getsourceRC   (   t   funt   h(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   h_fun"  s    
s   (\\\\)|(\$\$)|\$\{([^}]+)\}c            s   ‡  f d †  } t  j | |  ƒ S(   Nc            sf   |  j  d ƒ r d S|  j  d ƒ r& d Sy ˆ  j |  j  d ƒ ƒ SWn t k
 ra ˆ  |  j  d ƒ SXd  S(   Ni   s   \i   t   $i   (   t   groupt   get_flatR¨   (   R.   (   t   params(    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   repl_var1  s    (   t	   reg_substR    (   t   exprR±   R²   (    (   R±   sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt
   subst_vars0  s    	c         C   s$   |  d k r d S|  d	 k r  d Sd S(
   Nt   darwins   mac-oR#   R‘   t   uwint   msyst   pet   elf(   R#   R‘   R·   R¸   (    (   R!   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   destos_to_binfmt;  s
    c          C   så   t  j }  |  d k r– d d l m } | j d ƒ }  |  d k rD d S|  j d ƒ rW d S|  d	 k rg d
 S|  d k rw d S|  d k r‡ d S|  j ƒ  }  n  |  d k r¦ d S|  d k sÍ |  j d
 ƒ rÑ |  d k rÑ |  St j	 d |  ƒ d S(   Nt   javaiÿÿÿÿ(   t   Systems   os.names   Mac OS XR¶   s   Windows R#   s   OS/2t   os2s   HP-UXt   hpuxt   SunOSt   Solarist   sunost   powerpct   sunos2s   \d+$i    (   RÀ   RÁ   (
   R   t   platformt	   java.langR½   t   getPropertyR†   t   lowert   endswithRŽ   Ru   (   RS   R½   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   unversioned_sys_platformA  s(    	' c          O   s   d  S(   N(    (   R›   Rš   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   nadaU  s    t   Timerc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   t  j  j ƒ  |  _ d  S(   N(   t   datetimet   utcnowt
   start_time(   R   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR   X  s    c         C   sà   t  j  j ƒ  |  j } t | j ƒ } | j d } | j | d d } | j | d | d t | j ƒ d d } d } | r’ | d | 7} n  | sž | r¯ | d | 7} n  | sÁ | sÁ | rÒ | d | 7} n  d | | f S(	   Ni  i<   iè  RM   s   %dds   %dhs   %dms   %s%.3fs(   RÍ   RÎ   RÏ   Rb   t   dayst   secondst   floatt   microseconds(   R   t   deltaRÐ   t   hourst   minutesRÑ   t   result(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   __str__Z  s    .(   R   R   R   RØ   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyRÌ   W  s   	c         C   s!   t  |  | ƒ t j |  | ƒ d  S(   N(   t   oldt   shutilt   copystat(   t   srct   dst(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   copy2j  s    RÞ   R¼   c         C   sy   t  j d ƒ } i  } x] t |  ƒ j ƒ  D]I } y/ | j | j ƒ  ƒ \ } } } } | | | <Wq( t k
 rp q( Xq( W| S(   Ns   ^([^=]+)=\'(.*)\'$(   RŽ   RŸ   R2   t
   splitlinesRu   R…   t
   ValueError(   Rf   t   spt   dct   lineRž   t   leftt   right(    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   read_la_filet  s    !c            s   ‡  f d †  } ˆ  j  | _  | S(   Nc             s/   z t  j ƒ  ˆ  |  | Ž  } Wd  t  j ƒ  X| S(   N(   t   gct   disablet   enable(   R›   Rš   RT   (   R«   (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyR0     s
    
(   t   __doc__(   R«   R0   (    (   R«   sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   nogc~  s    c            s%   i  ‰  ‡  ‡ f d †  } ˆ  | _  | S(   Nc            s;   y ˆ  |  SWn( t  k
 r6 ˆ |  ƒ } | ˆ  |  <| SXd  S(   N(   R    (   R›   RT   (   t   cacheR«   (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   wrapŠ  s    
(   t	   __cache__(   R«   Rí   (    (   Rì   R«   sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   run_onceˆ  s    	c         C   sV   t  s
 d  Sy t  j |  d | d ƒ } Wn t k
 r; n Xt j j | ƒ rR | Sd  S(   Ns:   Software\Microsoft\Windows\CurrentVersion\App Paths\%s.exei    (   t   winregt   Nonet
   QueryValuet   WindowsErrorR>   Rf   t   isfile(   R!   t   filenameR×   (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   get_registry_app_path“  s    (   R#   R$   (Z   R>   R   Rh   Rx   R©   RŽ   RÚ   RÍ   Rç   t
   subprocesst   collectionsR    RZ   R[   t   _winregRð   Rñ   t   waflibR   R   t   hashlibR   R	   t   objectR
   t   ThreadR   R   t   SIG_NILt   O644t   O755t   rot_chrt   rot_idxR   t   dictRÅ   t   is_win32t	   indicatort   environR2   R7   R;   R—   RG   RK   RL   t	   readf_oldt
   writef_oldt
   h_file_oldR4   Rk   t   LookupErrorRO   RU   Rê   Rj   Rr   Rw   R   R�   RŸ   t   MR„   R‹   RŒ   R�   R�   R�   R•   R�   R£   R¥   R­   R³   Rµ   R»   RÊ   RË   RÌ   RÞ   RÙ   R˜   t   nameRè   Ré   t   NotImplementedErrorRæ   Rë   Rï   Rö   (    (    (    sN   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Utils.pyt   <module>   sÚ   l				
								
			
																	
	
	
	